簡體   English   中英

解析嵌套的 JSON 響應 Javascript

[英]Parse nested JSON Response Javascript

我知道這個主題有幾個線程,但我已經瀏覽了 30 多個線程但沒有成功。 我設法解析了一個 JSON 響應,所以它看起來像這樣:

   {
    "1": {
       "id": "1",
       "name": "Fruit",
       .
       .
       .
       "entities": {
          "1": {
            "id": "1",
            "name": "blue bird",
       .
       .
       .
       "status": "1"
    },
   "2": {

使用此代碼

    let json = JSON.parse(body);
    console.log(json); 

現在我想訪問“id”、“name”等以及“entities”標簽的“id”和“name”。 到目前為止,我已經嘗試過:

    console.log(json[0]);
    console.log(json.id);

兩者都返回未定義

我也試過

    console.log(json[0].id);

這給出了一個錯誤

有任何想法嗎?

在這種情況下,您的第一個鍵是1 ,因此您可以使用json[1]訪問它。

 const json = { "1": { "id": "1", "name": "Fruit" }, "2": { "id": "2", "name": "Veggies" } }; console.log(json[1]);

在這個 json 中,您可以通過

json.1.id

但我認為首先你的 json 寫得不正確,你應該有類似的東西

{ 
"elements": [
    { "id" : 1, "name" : "fruit" },
    { "id" : 2, "name" : "vegetable" }
]
}

像這樣,json.elements 是一個集合/數組,您可以循環、計數或任何其他您將無法執行的操作,因為您的 json 看起來像是一個不同屬性的超重列表(他不知道 Z466DEEC76ECDF35FCA6DZ8574F .1 和 json.2 是同一類型的對象。

const jsonData = JSON.parse(body);

for (const i in jsonData) {
  for (const j in jsonData[i]) {
    console.log('${i}: ${jsonData[i][j]}');
  }
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM