在PHP中解析未命名的JSON数组

时间:2012-02-14 01:32:37

标签: php javascript json

我的问题:我如何分解和迭代下图所示的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。看起来有些配对没有名字?如何访问此数组中的元素?

非常感谢你们

The Json I would like to parse in PHP

2 个答案:

答案 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;通常意义上访问一个数组,所以我可能会在这里错过一些关于你的问题...