-1

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) 

– 哈文纳德

4

2 回答 2

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 编码的数据。

于 2013-07-06T04:03:34.980 回答
0

您发布的内容肯定是有效的 JSON:

$ echo '{"action":"online","email":null,"script":null}' | python -mjson.tool
{
    "action": "online", 
    "email": null, 
    "script": null
}

最有可能的是,编码发生了一些事情。你是通过浏览器提交的吗?也许您可以利用它的开发人员工具来深入了解数据是如何发送的?(或嗅探电线...)

于 2013-07-06T04:18:18.053 回答