我在php中遇到json字符串问题。 我有一个应用程序获取用户联系人并将其发送到服务器,我以我的方式处理联系人。
问题是某些联系人名称非常有线并且在使用json_decode()
时发生了一些错误
像这样的联系人
[
{"displayName":"Altin"'''''"''''"""""\n\""\p chapar","phoneNumbers":[{"value":"0411*******"}]},
{"displayName":"A""""""basi","phoneNumbers":[{"value":"0914******"}]}
]
如何清理这个脏的json字符串才能正常工作?
我已尝试删除"""
和\\//
但我看到了大量错误
感谢
答案 0 :(得分:0)
试试这个
$result = str_split($contacts);
for ($i = 0; $i < count($result); $i++)
{
$found = false;
if ($result[$i] == '"')
{
if ($result[$i + 1] != ':' && $result[$i + 1] != ','
&& $result[$i - 1] != '{' && $result[$i - 1] != '"'
&& $result[$i + 1] != '}' && $result[$i - 1] != ':'
&& $result[$i - 1] != ',')
$result[$i] = '';
}
}
$edited = implode("", $result);
$edited = str_replace("'" , '' , $edited);
$edited = str_replace("\\" , '' , $edited);
$edited = str_replace("\n" , '' , $edited);
print_r(json_decode($edited));
这将替换所有内部双引号,因此字符串将为json_decode清理以生成std_objects。