簡體   English   中英

Json提取和使用數據(node.js)

[英]Json extract and use data (node.js)

我該如何訪問這些數據?

這是我的Json:

 {
  "6a768d67-82fb-4dd9-9433-d83dbd2f1b78": {
    "name": "Bahut",
    "11": {
      "timestamp": 1380044486000,
      "value": "false"
    }
  },
  "4f4a65e4-c41b-4038-8f62-76fe69fedf60": {
    "name": "Vit",
    "11": {
      "timestamp": 1380109392000,
      "value": "false"
    }
  },
  "a12d22cc-240e-44d6-bc58-fe17dbb2711c": {
    "name": "Cuis",
    "11": {
      "timestamp": 1379883923000,
      "value": "false"
    }
  }
}

我正在嘗試讀取並提取每個條目的id(xxxxxxxx-xxxx -...- xxxxxxxxx)和“name”以將其放入數組中。

但我沒辦法做到。

試 :

var nameid = json.'XXXXX-....-XXXX'.name;

或者用''代替' - '

var nameid = json.XXXXXXXXX.name;

也沒用。

您需要使用數組樣式訪問來獲取與id鍵關聯的子對象:

var nameid = json["a12d22cc-240e-44d6-bc58-fe17dbb2711c"].name; // or ["name"]
// nameid => "Cuis"

這是因為連字符不是點樣式訪問的有效字符(不能在JavaScript中的變量名中使用它們)。

為了提取所有你需要循環遍歷對象,並將它們添加到數組,如下所示:

var arr = [];
for (var id in json) {
    arr.push(json[id]["name"]);
}

這將為您提供該JSON對象中所有名稱的數組。

如果要循環訪問數據,請使用for in循環:

for (var key in obj) { //obj is your data variable
    console.log(key); //xxxx-x-xx-x-x-xxxx
    console.log(obj[key].name); //the name for each
}

您可以使用Object.keys來獲取屬性數組。

var js = JSON.parse(json);
var props = Object.keys(js);

var result = props.map(function(prop) {
  return {
    id: prop,
    name: js[prop].name;
  };
});

最終結果是具有2個屬性的對象數組: idname

像訪問數組一樣訪問JSON,例如:

data["a12d22cc-240e-44d6-bc58-fe17dbb2711c"].name

的jsfiddle

不是常見的循環方式,但在這種情況下,您可以遍歷json對象

for (var prop in json){
     print("prop",json[prop].name);
}

暫無
暫無

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

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