如何访问此数据?
这是我的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;
也不起作用。
答案 0 :(得分:7)
您需要使用数组样式访问来获取与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对象中所有名称的数组。
答案 1 :(得分:1)
如果要循环访问数据,请使用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
}
答案 2 :(得分:0)
您可以使用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个属性的对象数组:id
,name
答案 3 :(得分:0)
答案 4 :(得分:0)
不是常用的循环方式,但在这种情况下,您可以遍历json对象
for (var prop in json){
print("prop",json[prop].name);
}