2014-04-01 153 views
0

我下面举个例子JSON:JSON解析空的结果

{ 
productAPI: { 
    status: 200, 
    message: "OK", 
    version: 3, 
    products: { 
    grouped: { 
     matches: 773949, 
     groups: [ 
     { 
      doclist: { 
      start: 0, 
      numFound: 385957, 
      docs: [ 
       { 
       merchant: "Amazon", 
       currency: "GBP" 
       } 
      ] 
     }, 
     doclist: { 
      start: 0, 
      numFound: 885957, 
      docs: [ 
       { 
       merchant: "Ebay", 
       currency: "GBP" 
       } 
      ] 
     } 

将会有多个商​​户的名字我想打印,但得到空白结果(我很新的JSON解析)

这里是我在尝试:

$prodList=$prodList['productAPI']['products']['grouped']['groups']['doclist']['docs']; 

foreach ($prodList as $element){ 
    echo $element['merchant']; 
} 

这是正确的方法吗?

UPDATE

正如已经正确地指出,(我没有补充足够的例子)“组”是一个数组,所以,我已经改变为以下,但仍然没有喜悦:

$prodList=$prodList['productAPI']['products']['grouped']['groups']; 

$i=0; 
foreach ($prodList as $element){ 
    echo $element[$i]['doclist']['docs']['merchant']; 
    $i++; 
} 
+1

'$ prodList'在哪里定义的?你'json_decode()'? –

+0

@RahilWazir是的,它的定义来引入数据:$ prodList = json_decode(file_get_contents('URL_HERE'),true); –

+0

请发布完整的JSON响应。 –

回答

1

groups下的值index是一个数组,您错过了此数组的索引。也许像这样将有助于:

$prodList=$prodList['productAPI']['products']['grouped']['groups'][0]['doclist']['docs']; 

(取决于什么可以为groups数组,你想做些什么什么)。

更新 现在反过来太多间接的groups数组:)。试试这个:

$prodList=$prodList['productAPI']['products']['grouped']['groups']; 
foreach ($prodList as $element){ 
    $docs = $element['doclist']['docs']; 
    foreach ($docs as $doc) { 
     echo $doc['merchant']; 
    } 
} 
+0

更新的问题 –