如何在PHP中循环遍历这个json解码数据?

4

我有一个JSON产品列表需要解码:

"[{"productId":"epIJp9","name":"Product A","amount":"5","identifier":"242"},{"productId":"a93fHL","name":"Product B","amount":"2","identifier":"985"}]"

在使用json_decode()函数将其解码后,我不知道输出的结构是什么。我以为它会是一个数组,但是当我用count()函数时,它显示为“0”。我该如何循环遍历这些数据,以便获取列表中每个产品的属性?
谢谢!

$decoded_json = json_decode($list); 然后将数组输出为 echo "<pre>"; print_r($decoded_json); echo "</pre>"; 并将输出粘贴在此处。 - sven
5个回答

11

要将 JSON 转换为数组,请使用:

 json_decode($json, true);

9
你可以使用json_decode()函数,它可以将你的JSON转换成数组。
例如:
$json_array = json_decode($your_json_data); // convert to object array
$json_array = json_decode($your_json_data, true); // convert to array

那么您可以像这样循环数组变量:
foreach($json_array as $json){
   echo $json['key']; // you can access your key value like this if result is array
   echo $json->key; // you can access your key value like this if result is object
}

7
尝试以下代码:

尝试以下代码:

$json_string = '[{"productId":"epIJp9","name":"Product A","amount":"5","identifier":"242"},{"productId":"a93fHL","name":"Product B","amount":"2","identifier":"985"}]';

$array = json_decode($json_string);

foreach ($array as $value)
{
   echo $value->productId; // epIJp9
   echo $value->name; // Product A
}

获取计数

echo count($array); // 2

1

0

你可以在 PHP Fiddle 在线尝试这段代码,对我来说有效

 $list = '[{"productId":"epIJp9","name":"Product A","amount":"5","identifier":"242"},{"productId":"a93fHL","name":"Product B","amount":"2","identifier":"985"}]';

$decoded_list = json_decode($list); 

echo count($decoded_list);
print_r($decoded_list);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接