在PHP中从JSON提取数据失败


Extracting data from JSON failed in PHP

{
    "firstName":"sunny",
    "religion":  {"holly":"1",
    "bolly":"colly",
    "nolly":"only"
},
    "lonely":"money",
    "ronney":"leone",
    "honey":"bunny"
}

这是我的JSON。我想从中获取所有数据,并将其存储到一些php变量或数组中。

我使用以下代码从JSON中提取数据。我先解码了它,然后把它存储在一个数组中。。

    $val_array = json_decode($jsondata, true);
    echo $jsondata;
    $AAA    = $val_array->firstName;
    $BBB    = $val_array->religion;
    $CCC_id = $val_array->bolly;
    $DDD    = $val_array->nolly;
    $CCC_id = $val_array->lonely;
    $DDD    = $val_array->ronney;

但它没有给我任何输出。然后我用了这个。

foreach($data['val_array'] as $item)
{
     echo  $item[0];
    }
}

无输出。帮助

第二个参数错误:

$val_array = json_decode($jsondata, true);
$AAA = $val_array['firstName'];

$val_array = json_decode($jsondata, false);
$AAA=$val_array->firstName;

您的JSON无效。删除最后元素后的逗号:

{
    "firstName" : "sunny",
    "religion" : {
        "holly" : "1",
        "bolly" : "colly",
        "nolly" : "only" # Here
    },
    "lonely"    : "money",
    "ronney"    : "leone",
    "honey"     : "bunny" # And here
}

您的JSON:中有一个错误

"nolly":"only",
"honey":"bunny",

删除这两行末尾的",",然后json_decode((将返回一个数组。如果您想要一个对象,请不要将第二个参数传递给json_decode((

默认情况下,

json_decode返回一个对象,但由于您将第二个参数设置为true,因此会为您提供一个包含信息的关联数组。

这基本上可以归结为这样一个事实:要么不需要填写第二个参数并获得所需的对象,要么在将参数设置为true时使用数组。

在PHP.net上读一读会有助于你进一步参考,因为他们的文档介绍得很好,通常由其他人提出有用的建议,而且非常干净!

$val_array = json_decode($jsondata, true);
$m1=$val_array['firstName'];
$m2=$val_array['lonely'];
$m3=$val_array['ronney'];
$m4=$val_array['honey'];
$m4=$val_array['religion']['holly'];
$m5=$val_array['religion']['bolly'];
$m6=$val_array['religion']['nolly'];

通过使用它,我们不必使用foreach循环或内部循环来访问数据。维奥拉!