我的问题:我如何分解和迭代下图所示的JSON数组?
我正在创建一个AJAX Web应用程序,我需要在Javascript中序列化一个对象数组,并将它们放在一个url中以传递给php脚本。这一切都很顺利,php脚本像这样收到JSON ..
$passed = $_GET['result'];
if(isset($passed)){
$passed = str_replace("undefined" , " " , $passed); /*had to add this to remove the undefined value*/
$json = json_decode(stripslashes($passed));
echo"<br/>";
var_dump($json ); //this is working and dumps an array
}
当我在解码的JSON上调用var_dump时,我会像这样回显输出......
array(1) { [0]=> object(stdClass)#70 (2) { ["itemCount"]=> int(0) ["ItemArray"]=> array(2) { [0]=> object(stdClass)#86 (6) { ["itemPosition"]=> int(0) ["planPosition"]=> int(0) ["Name"]=> string(5) "dsfsd" ["Description"]=> string(3) "sdf" ["Price"]=> string(0) "" ["Unit"]=> string(0) "" } [1]=> object(stdClass)#85 (6) { ["itemPosition"]=> int(1) ["planPosition"]=> int(0) ["Name"]=> string(4) "fdad" ["Description"]=> string(3) "sdf" ["Price"]=> string(0) "" ["Unit"]=> string(0) "" } } } }
JSON 这是我收到的JSON。看起来有些配对没有名字?如何访问此数组中的元素?
非常感谢你们
答案 0 :(得分:3)
其中一些元素将作为stdClass
对象返回,如var_dump
输出中所示。您可以使用标准对象表示法获取属性,例如,使用$json
变量:
echo $json[0]->itemCount; // 0
echo $json[0]->itemArray[0]->itemPostion; // 0
你也可以像任何PHP对象一样迭代stdClass实例,你将循环遍历公共数据成员,所以再次使用$json
:
foreach(echo $json[0]->itemArray[0] as $key => $value)
echo 'key: ' . $key . ', value: ' . $value . PHP_EOL;
将遍历第一个对象,echo
输出对象的成员名称和值。
答案 1 :(得分:2)
您只需按索引访问它们:
data[0] // first data item
请注意,您通常会&#34;通常&#34;通常意义上访问一个数组,所以我可能会在这里错过一些关于你的问题...