PHP json_decode()错误

PHP json_decode()错误,php,json,syntax-error,Php,Json,Syntax Error,根据JavaScript的JSON.parse和一些在线JSON验证器,我有一个JSON字符串是有效的JSON。然而,PHP的json_decode说有一个语法错误,我一辈子都找不到它/它们在哪里 这是我的JSON字符串(它超过了StackOverflow的post长度) 编辑: JSON包含此结构的一些字段: "pets":{"":null} 编辑:我忘记提到的是,我正在将JSON粘贴到POST表单中,并从启用全局XSS清理的CodeIgniter的Input::POST()方法获取数据。这

根据JavaScript的JSON.parse和一些在线JSON验证器,我有一个JSON字符串是有效的JSON。然而,PHP的json_decode说有一个语法错误,我一辈子都找不到它/它们在哪里

这是我的JSON字符串(它超过了StackOverflow的post长度)

编辑:

JSON包含此结构的一些字段:

"pets":{"":null}

编辑:我忘记提到的是,我正在将JSON粘贴到POST表单中,并从启用全局XSS清理的CodeIgniter的Input::POST()方法获取数据。这似乎是问题的根源。我可以从下面的帖子和所有说PHP解码正确的帖子中判断出来。

你的JSON对我来说似乎是正确的。我猜您试图用单引号或双引号将JSON包装起来,但这样做行不通,因为您的字符串同时包含这两个未被转换的字符

尝试将您的JSON包装在一个文件中,然后对其进行解析:

<?php

$json = <<<EOL
{"foo":"here is a single quote '"}
EOL;

$decoded = json_decode($json);
var_dump($decoded);

是的,JSON看起来是有效的。因为我们没有其他的事情要做,所以我们真的无法为您做更多的事情。您的JSON字符串是有效的,PHP很乐意解析它。我测试了从5.3到7.0的所有版本,没有人对此表示不满。您得到的确切错误是什么?Json是正确的,我成功解析了它。我忘了提到的一点是,我正在将Json粘贴到POST表单中,并在启用全局XSS清理的情况下从CodeIgniter的Input::POST()方法获取数据。这似乎是问题的根源。我可以从下面的帖子和所有说PHP解码正确的帖子中判断出来,实际上我并没有手动粘贴字符串。我从它来自的站点的iFrame中获取字符串并将其粘贴到表单中(POST请求)——然后从CodeIgniter的输入::POST()中提取它;方法来清理它。。。我刚刚发现是CodeIgniter导致了问题,可能是XSS清理。。。啊…啊,谢谢你的澄清。听起来这可能就是问题所在!如果您仍然有问题,请更新您的问题并提供尽可能多的详细信息。谢谢谢谢你提供的信息。我将来可能会用它来做一些事情。现在唯一的问题是XSS清理,我想保留它,但CI不允许任何异常—这是一个全有或全无的问题。因此,我要么完全禁用它,要么寻找替代解决方案。再次感谢。:)