2012-11-04 135 views
0

JSON通过深JSON树循环

[ 
    { 
    "kind": "Listing" 
    }, 
    { 
    "kind": "Listing", 
    "data": { 
     "children": [ 
     { 
      "data": { 
      "body": "body1" 
      } 
     }, 

     { 
      "data": { 
      "body": "body2" 
      } 
     } 
     ] 
    } 
    } 
] 

我通过要循环的部分:[{第一组值},{DATA-> CHILDREN->数据 - >体}

最后一部分是我想要抓的部分。还有其他几套,每个“身体”代表在reddit上没有孩子的单独评论。

+1

第1步:制作JSON [有效](http://jsonlint.com)。 (你不能在JSON中使用悬挂逗号。) –

+0

你有什么尝试?你在哪里遇到麻烦?你的尝试(代码)是什么样的? –

回答

0

json_decode的JSON到一个对象,然后循环:

<?php 
$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, "http://www.reddit.com/r/indie/comments/zc0lz/.json"); 
curl_setopt($curl, CURLOPT_HEADER, 0); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($curl, CURLOPT_TIMEOUT, 30); 
$json = curl_exec($curl); 
curl_close($curl); 
//decode the json 
$json_obj = json_decode($json); 
//loop the result set(array) and access the data->children sub array. 
foreach($json_obj as $v){ 
    foreach($v->data->children as $d){ 
     if(isset($d->data->body)){ 
      echo $d->data->body.'<br />'.PHP_EOL; 
     } 
    } 
} 

/* 
Is anyone else bored with this? The first album was good for the moment it existed in, but the has since passed. It just seems their sound didn't mature very well.<br /> 
Yeah, from the songs I had heard, this album missed it. Too similar and not as exciting.<br /> 
half the album is just as amazing as the first. half is kind of dull<br /> 
Got this album today, maybe 2 decent-ish songs, but it sounds like they have tried to copy some of the sounds from the album way too closely. Real shame. 4/10<br /> 
If the player doesn't work, refresh the page and try again. You can also use the NPR link!<br /> 
Loved the sound of the first album, and I'm kind of happy they've not strayed to much away from this. Have to agree that it seems to be missing the 'awesomeness' that made the first songs so enjoyable to listen to.<br /> 
*/ 
?> 
0

对于有效的JSON字符串转换成在PHP对象和数组形式的PHP变量进行解码,则可以使用json_decode功能。

要遍历PHP变量中的值 - 特别是数组和对象 - 可以使用foreach

如果你有问题,找到你想要在深树遍历值,请参阅

但是你还没有告诉你的实际问题与Json字符串是,所以我只能以这种一般形式回答。