在PHP中解码JSON时出错

时间:2013-06-23 19:22:53

标签: php json decode

{
"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则没有。

2 个答案:

答案 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);

有用吗? 另外,你有错误吗?这也许会有所帮助。