PHP json_decode为此JSON字符串返回null
{"action":"online","email":null,"script":null}
并且验证器显示其有效。帮助
编辑: 使用
echo bin2hex($json);
我得到了
a bunch of padded zeros on the end ...c7d00000000 - Unexpected control character found
需要以某种方式摆脱它们。
答案:
似乎我们发现了这个问题。试试
$json = trim($json), if it don't fix use $json = preg_replace('/\\\\0+$/', '', $json)
- Havenard
答案 0 :(得分:2)
我不这么认为,如果你把它包裹在''
或""
这样 -
在你的情况下使用""
提防它,礼貌msturdy
<?php
$json = '{"action":"online","email":null,"script":null}';
var_dump(json_decode($json, true));
输出 -
array(3) {
["action"]=>
string(6) "online"
["email"]=>
NULL
["script"]=>
NULL
}
键盘 - http://codepad.org/AdzSN4R3
评论后,来自DOCS -
json_decode此功能仅适用于UTF-8编码数据。
答案 1 :(得分:0)
您发布的内容肯定是有效的JSON:
$ echo '{"action":"online","email":null,"script":null}' | python -mjson.tool
{
"action": "online",
"email": null,
"script": null
}
最有可能的是,编码会发生一些变化。您是通过浏览器提交的吗?也许您可以利用其开发人员工具深入了解数据的确切发送方式? (或嗅探电线......)