{
"id_establishment": 2,
"findings": {
"1": {
"status": "OK",
"findings": ""
},
"2": {
"status": "NOK",
"findings": "De lamp knippert af en toe"
}
}}
这是我发送给Web服务器的JSON。我尝试使用它;
$rawdata = getSafeData();
$data = json_decode($rawdata);
var_dump($data);
方法getSafeData()返回所需的JSON,我用echo $ rawdata测试它。 每当我转储变量$ data时它就会给我; 'NULL'。
请帮助我!
修改: 事实证明,方法json_decode不会返回已解码的字符串,而是为您解码字符串。 在这种情况下,$ rawdata是解码后的字符串,而$ data则没有。
答案 0 :(得分:1)
来自the docs:
如果无法解码json或者编码数据的深度超过递归限制,则返回NULL。
看起来你的JSON无效,或者PHP认为它是。这是正在发送的完整JSON文档,还是最小工作(或者在这种情况下失败...)示例?
编辑:我最初指出了一些我认为是语法错误的东西,结果我误读了JSON
答案 1 :(得分:0)
您的JSON可能无效。
如果你这样做:
$rawdata = <<<EOF
{
"id_establishment": 2,
"findings": {
"1": {
"status": "OK",
"findings": ""
},
"2": {
"status": "NOK",
"findings": "De lamp knippert af en toe"
}
}}
EOF;
// $rawdata = getSafeData();
$data = json_decode($rawdata);
var_dump($data);
有用吗? 另外,你有错误吗?这也许会有所帮助。