PHP,JSON解码中的字符无效

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP,JSON解码中的字符无效脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我遇到麻烦让json_decode处理我收到的特定字符串.

我把它缩小到这条线:

从这个问题中复制json,问题是不可重现的 – 但原始json的代表片段在这里http://codepad.org/ZzrC7rqQ – 并将其放在jsonlint.com中给出:

Parse error on line 3:
...  "systemNotes[6]": "January 09,2013 12
-----------------------^
Expecting 'STRING','NUMBER','NULL','TRUE','FALSE','{','['

这个字符串有什么问题,这样它的json无效?

编辑

我设法找到了确切的代码.

这似乎没问题所以也许问题来自于我做parse_str时,这是我正在使用的代码

$response = apiConnection($data);
parse_str($response,$parse);
$each = json_decode($parse['data']);
foreach($each as $key => $order){
   //do something
}
问题是制表符在字符串中无效.

删除像这里http://codepad.org/8fnQphkS这样的标签字符并在jsonlint.COM上使用它你会看到它现在看到有效的json.

请查看http://www.ietf.org/rfc/rfc4627.txt?number=4627特别是第2.5节中JSON的规范,其中制表符按名称调出,作为字符串中必须转义的字符之一.

编辑:

这是一种剥离所有选项卡和多个空格并用单个空格字符替换它们的方法

$data = PReg_replace('/[ ]{2,}|[\t]/',' ',trim($data));

脚本宝典总结

以上是脚本宝典为你收集整理的PHP,JSON解码中的字符无效全部内容,希望文章能够帮你解决PHP,JSON解码中的字符无效所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。