2014-04-01 113 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

更新的問題 –