2014-03-05 151 views
0

有很多JSON/PHP /解碼相關的文章...但我在這裏掙扎。我很確定我錯誤地構建了我的JSON,但我似乎無法看到我的錯誤。誰能幫忙?JSON PHP解碼陣列和對象

{ 
"badging": [ 
    { 
     "event": [ 
      { 
       "eventName": "Covent Garden", 
       "numberOfRooms": "1", 
       "mainLang": "xx", 
       "timeZone": "saas" 
      } 
     ] 
    }, 
    { 
     "names": [ 
      { 
       "id": "1", 
       "fName": "Daniel", 
       "pos": "King" 
      }, 
      { 
       "id": "2", 
       "fName": "Dasha", 
       "pos": "Queen" 
      } 
     ] 
    } 
] 
} 

這是張貼到PHP頁面和json_decode用於

$json = $_POST['feed']; 
$list = json_decode($json, TRUE); 

而且我覺得我應該能夠訪問的數據等:

echo $list[1][2]['fName']; 

echo $list->badging[1]->names[2]->fName; 

但我似乎無法做到這一點。 感謝

+1

你可以做print_r($ list);並查看變量的內容。 – rusben

+0

雖然我的代碼在上面還是錯的,但這並不是導致我出現問題的原因。 我從mySQL數據庫中獲取數據 - 創建一個php字符串,然後使用json_encode() - 然後POST到另一個使用json_decode()的PHP頁面。每次我使用json_encode它都不會顯示。 – dmo

+0

這只是一個註釋,注意到下一次您可以在整個變量中執行print_r而不是回顯,其中如果varianle是數組,您將看不到內容。 – rusben

回答

1

嘗試$list['badging'][1]['names'][1]['fName'];
http://codepad.org/IdneHeDL
此外,如果你忽略了真實的json_decode然後$list->badging[1]->names[1]->fName;
http://codepad.org/WXWkVqo1

+0

實際上json有一個問題 - 你的鍵盤幫我弄明白了。我一直在想,這是我的json或我嘗試過的各種回聲,結果很簡單。感謝您的支持 – dmo

1

它應該是:

print($list["badging"][1]["names"][0]["fName"]); // outputs "Daniel" 
print($list["badging"][1]["names"][1]["fName"]); // outputs "Dasha" 
0

根據您的JSON,通過JSON_decode,我們獲得

Array ([badging] => Array ([0] => Array ([event] => Array ([0] => Array ([eventName] => Covent Garden [numberOfRooms] => 1 [mainLang] => xx [timeZone] => saas))) [1] => Array ([names] => Array ([0] => Array ([id] => 1 [fName] => Daniel [pos] => King) [1] => Array ([id] => 2 [fName] => Dasha [pos] => Queen))))) 

所以,要訪問它,你需要用它來

echo $list['badging'][1]['names'][0]['fName']; 

編碼快樂:)

1

這是你的陣列的外觀。

array(1) { 
    ["badging"]=> 
    array(2) { 
    [0]=> 
    array(1) { 
     ["event"]=> 
     array(1) { 
     [0]=> 
     array(4) { 
      ["eventName"]=> 
      string(13) "Covent Garden" 
      ["numberOfRooms"]=> 
      string(1) "1" 
      ["mainLang"]=> 
      string(2) "xx" 
      ["timeZone"]=> 
      string(4) "saas" 
     } 
     } 
    } 
    [1]=> 
    array(1) { 
     ["names"]=> 
     array(2) { 
     [0]=> 
     array(3) { 
      ["id"]=> 
      string(1) "1" 
      ["fName"]=> 
      string(6) "Daniel" 
      ["pos"]=> 
      string(4) "King" 
     } 
     [1]=> 
     array(3) { 
      ["id"]=> 
      string(1) "2" 
      ["fName"]=> 
      string(5) "Dasha" 
      ["pos"]=> 
      string(5) "Queen" 
     } 
     } 
    } 
    } 
} 

例如, echo $ list ['badging'] [0] ['event'] [0] ['eventName'];