在PHP中从JSON中提取数据失败

时间:2014-05-20 07:33:13

标签: php arrays json html5 phpmyadmin

{
    "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];
    }
}

没有输出。帮助??

5 个答案:

答案 0 :(得分:4)

你得到第二个错误:

$val_array = json_decode($jsondata, true);

$AAA = $val_array['firstName'];

OR

$val_array = json_decode($jsondata, false);

$AAA=$val_array->firstName;

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

您的JSON中有错误:

"nolly":"only",

"honey":"bunny",

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

答案 3 :(得分:0)

json_decode默认返回一个对象,因为你将第二个参数设置为true,你会得到一个带有信息的关联数组。

它基本上归结为这样一个事实,即您不需要填写第二个参数并获取所需的对象,或者在将参数设置为true时使用数组。

PHP.net上的一点阅读将为您提供进一步的参考,因为他们的文档很好地呈现,通常由其他人提供有用的建议和相当干净的评论!

答案 4 :(得分:0)

$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循环或内部循环来访问数据。中提琴!