如何在php中获取json数组的值?

时间:2014-10-29 08:05:05

标签: php json

我有这样的json:

{
    "Products": [
        {
            "_id": 1
            ....
        },
        {
            "_id": 2
            ....
        }
    ]
}

得到了这个json:

$str = file_get_contents($_FILES["uploadFile"]["tmp_name"]);
       // convert object => json
        $json = json_encode($str);
        // convert json => object
        $decoded = json_decode($json,true);

现在我想查看_id的所有Producs。 我使用此echo $decoded[0]['_id'];但它没有显示任何内容。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

$decoded = json_decode($json, true); 
echo $decoded['products'][0]['_id'];

这将json解释为一个数组,您可以像使用PHP中的任何其他数组一样使用它,如果您在访问值时遇到问题,那么只需执行print_r($decoded)并显示其结构

如果你想遍历所有的id,那么只需做一个foreach循环

foreach($decoded as $inner_array) {
    foreach($inner_array as $products) {
        echo $products['_id'];
    }
}

Working demo

答案 1 :(得分:0)

你应该知道在你的json字符串上使用引号:) 键和值。 您不需要对其进行编码。字符串已经是json格式

$str= '{"Products": [{"_id": "1"},{"_id": "2"}]}';
$decoded = json_decode($str,true);

echo $decoded['Products'][0]['_id'];