我从这样格式的WS中收到错误的JSON:
{
"name" : {"title": "This is my wrong title "b", and then.."}
}
显然,这是错的,json_decode
在PHP中工作。
有没有人知道如何消毒该字符串并获得类似的东西:
{
"name" : {"title": "This is my wrong title \"b\", and then.."}
}
答案 0 :(得分:0)
我遇到了同样的问题...找到了一个(PHP)解决方法,但它不是100%证明:
preg_match_all('/: "[^,]*",|\}/', $data, $matches );
if ( isset ($matches[0] ))
{
foreach( $matches[0] AS $match )
{
if ( substr_count( $match, '"') > 2 )
{
$data = str_replace( substr($match, 2, -2), addslashes( substr($match, 2, -2) ), $data );
}
}
$arr = json_decode( $data, true );
}
不幸的是,如果字符串包含逗号,则会失败...就像您的示例一样。 我希望有人能找到更好的解决方案,我对这个问题不太满意。