使用php获取复杂的JSON对象

时间:2013-08-03 04:18:14

标签: php mysql json server-side

我的服务器端有json对象,格式如下:

{"page_1":{
   "stats":{
      "s1":10, "s2": 20}
    },
   "rules":{
      "rule1":{
       "x": 2, "type":"normal"}
      "rule2":{
       //etc
        }
     }
  },
 "page_2":{
   //etc
  }
}

我如何使用foreach访问不同的元素,例如,因为我需要将它们保存到db。

更新:我试过但却徒劳无功:

foreach ($data as $key => $value) {
    echo $key."\n";
    foreach ($value as $k => $v) {
        echo $k." -- ".$v."\n";
    }

}

2 个答案:

答案 0 :(得分:1)

尝试

$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
$myarr = json_decode($json,true);
foreach($myarr as $key=>$val){
    echo $key, '=>' ,$val , "\n";
}

您正在使用普通的PHP数组。

您的代码已修改(未经过测试)

foreach ($data as $key => $value) {
    echo $key."\n";
    echo "heeeeeeeeeeeeeeeeeere: ", $key['stats']['s1'] , "\n";
    foreach ($value as $k => $v) {
        echo $k," -- ",$v,"\n";
    }
}

答案 1 :(得分:-1)

使用json_decode($str, true)将字符串转换为关联数组。之后,您可以直接访问数据。

另请参阅:PHP: Arrays