如何清理此JSON字符串数据?。乍一看,使用str_replace方法非常容易,但事实并非如此。这个JSON字符串是一个JSON对象,它有空格表示ex。{"名字":"某物"}。因此,当我将其转换为json字符串时,空格被不需要的字符串(''u00a0)所取代。我认为使用preg_replace可以解决这个问题,但突然我不知道逗号、双引号和冒号的正则表达式了。此字符对于json字符串格式是必需的。请帮帮我。
例如
{"AS_applicant_Data__c":
"{
'"Last Name'u00a0'":'"SDFSAD'",
'"First Name'u00a0'":'"SDFAFSDA'",
'"Middle Name'u00a0'":'"SAFDSAFD'",
'"Gender'u00a0'":'"Male'"
}"
}
至
{"AS_applicant_Data__c":"
"{
"Last Name":"SDFSAD",
"First Name":"SDFAFSDA",
"Middle Name":"SAFDSAFD",
"Gender":"Male"
}"
}
我使用这段代码,它对我来说还可以:
<?php
$string = <<<EOD
{"AS_applicant_Data__c":
"{
'"Last Name'u00a0'":'"SDFSAD'",
'"First Name'u00a0'":'"SDFAFSDA'",
'"Middle Name'u00a0'":'"SAFDSAFD'",
'"Gender'u00a0'":'"Male'"
}"
}
EOD;
$pattern = '#''''u[0-9a-f]{4}#i';
$replacement = '';
echo preg_replace($pattern, $replacement, $string);
?>
此正则表达式盲目地用空字符串替换''uxxxx格式的Unicode字符。如果您确信只有''u00a0,则可以将regex更改为#''''u00a0#i
尝试在此处快速跑步:http://ideone.com/xW4zTN
当我使用这个
preg_replace("/[^a-zA-Z]/", "", $str);
。。它会删除所有特殊字符。可以跳过吗逗号、双引号、大括号和冒号?
当然,只需在字符类中包含那些特殊字符(引号必须用反斜杠转义):
preg_replace("/[^a-zA-Z,'"{}:]/", "", $str);