$json="[{ 'i':100000, 'u':-1,n: '中国'},{i:100001,u:-1,n:'阿尔巴尼亚'},{i:100002,u:-1,n:'阿尔及利亚',}]"; $json = preg_replace('/([{,:])(\s*)\'(.*?)\'/','$1"$3"',$json);//key、value的单引号变双引号 $json = preg_replace('/([{,]+)(\s*)([^"\']+?)\s*:/','$1"$3":',$json);//没有单引号、双引号的key 两边加双引号 $json = preg_replace('/(,)\s*}/','}',$json);//去除尾部多于逗号 echo $json; var_dump(json_decode($json));
function jsonstr_init($josn){ $json = preg_replace('/([{,:])(\s*)\'(.*?)\'/','$1"$3"',$json);//key、value的单引号变双引号 $json = preg_replace('/([{,]+)(\s*)([^"\']+?)\s*:/','$1"$3":',$json);//没有单引号、双引号的key 两边加双引号 $json = preg_replace('/(,)\s*}/','}',$json);//去除尾部多于逗号 return $json; }
本文介绍了一种使用PHP处理不规范JSON字符串的方法,通过正则表达式将字符串中的单引号转换为双引号,为没有引号包裹的键名添加引号,并移除多余的逗号,确保了JSON字符串的正确性。
1403

被折叠的 条评论
为什么被折叠?



