0
{
"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 时;'无效的'。

请帮我!

编辑:原来 json_decode 方法不会返回解码后的字符串,而是为您解码字符串。在这种情况下,$rawdata 是解码后的字符串,而 $data 什么都不是。

4

2 回答 2

1

文档

如果无法解码 json 或编码的数据深度超过递归限制,则返回 NULL。

看起来您的 JSON 无效,或者 PHP 认为是无效的。这是正在发送的完整 JSON 文档,还是最低限度的工作(或者在这种情况下失败......)示例?

编辑:我最初指出了一些我认为是语法错误的东西,结果我误读了 JSON

于 2013-06-23T19:26:55.093 回答
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);

它有效吗?另外,你有错误吗?这也可能有帮助。

于 2013-06-23T20:03:59.913 回答