2016-07-08 68 views
0

我正在向腳本發送JSON數組以進行進一步處理。 JSON數組包含一組對象,每個對象都包含更多對象。我需要知道的是如何訪問這些嵌套對象中的值。所以,舉例來說,如果腳本收到以下:在JSON數組中尋址對象

petlist = [ 
    {"cats":[ 
      {"catName":"Felix","catType":"British short haired"} 
     ] 
    }, 
    {"dogs":[ 
      {"dogName":"Fido","dogType":"Labrador"} 
     ] 
    }, 
    {"fish":[ 
      {"fishName":"Bob","fishType":"Goldfish"} 
     ] 
    }, 
    {"birds":[ 
      {"birdName":"Polly","birdType":"Parrot"} 
     ] 
    } 
] 

我怎麼會那麼解決,比如說,一個)dogName,B)birdType,或c)整個貓對象?

另外,我在這裏用我的術語是否正確?據我瞭解,方括號內的東西是一個數組,而花括號中的東西是一個對象。

編輯:我建立了JSON在Javascript,然後我需要訪問一個玉模板中的元素(在「每個」循環)

感謝

+0

json.parse(petlist)在JavaScript將JSON轉換成array.By陣列處理你可以訪問任何數據 –

+0

請閱讀[this(how to ask)](http://stackoverflow.com/help/how-to-ask)和[this(mcve)](http://stackoverflow.com /幫助/ MCV e)在問之前,因爲這些將幫助您從社區獲得更多更好的答案。說明您打算使用的語言(JAvascript將處理與說,Java或C +不同的語言) – Bonatti

+0

已編輯,以添加我正在嘗試執行此操作的詳細信息。 – Drum

回答

2

我改變了你的JSON一點點,因爲我認爲與其合作並不是很有趣。基本上我只是循環通過對象,這就是爲什麼我認爲你應該有一個像名字而不是dogName,catName等等的鍵。

你可以找到玉工作示例的這個JSFiddle

HTML

<div id="jadeoutput"></div> 
<pre id="jadeinput" style="display:none"> 
- console.log(petlist) 
h1 List 
    ul.list 
    - for(var i in petlist) 
     li= "Item - "+ petlist[i].name 
     - for(var j in petlist[i].pets) 
     li= "Pet - " + petlist[i].pets[j].name + " " + petlist[i].pets[j].type 
</pre> 

的JavaScript

$(function() { 
    var json = { 
    "petlist" : [ 
     { 
      "name" : "cats", 
      "pets": 
      [ 
       { "name":"Felix","type":"British short haired"} 
      ] 
     }, 
     { 
      "name" : "dogs", 
      "pets": 
      [ 
       {"name":"Fido","type":"Labrador"} 
      ] 
     }, 
     { 
      "name" : "fish", 
      "pets": 
      [ 
       {"name":"Bob","type":"Goldfish"} 
      ] 
     }, 
     { 
      "name" : "birds", 
      "pets" : 
      [ 
       {"name":"Polly","type":"Parrot"} 
      ] 
     } 
    ]}; 

    $("#jadeoutput").html(jade.compile($("#jadeinput").html())(json)); 
}); 
+0

任何時候當你在JSON流中看到** {大括號}時,它將對應一個*對象。*任何時候你會看到** [方括號] **,這是一個*數組。*一旦你成功解碼了JSON,您將擁有一個內部結構完全匹配的JavaScript變量。 (「是的,JSON *是* JavaScript ...」) –

+0

如果他想添加鯊魚,他將不得不改變他的完整代碼,只是爲了添加它們而不是動態循環它們。我知道我可以使用這些名字。 – KRONWALLED