【发布时间】:2020-01-28 12:23:53
【问题描述】:
我在这里用类似的 JSON 讨论了各种主题,但从来没有相同,而且我仍在努力循环遍历数组的元素。
我有以下 JSON:
{
"person":
[
{
"id": "xyz",
"attributes":
[
{"attribute_name1": "value1"},
{"attribute_name2": "value2"}
]
},
{
"id": "abc1",
"attributes":
[
{"attribute_name1": "value3"},
{"attribute_name2": "value4"},
{"attribute_name3": "value77"}
]
}
]
}
JSON 预先作为字符串传递。 然后我试图列出所有“人”以及他们的 ID 和属性列表:
var data = '{"person":[ { "id": "xyz","attributes": [{"attribute_name1": "value1"},{"attribute_name2": "value2"}]},{"id": "abc1","attributes": [{"attribute_name1": "value3"},{"attribute_name2": "value4"},{"attribute_name3": "value77"}]}]}';
var json, i, j;
var json = data.toString();
json = JSON.parse(json);
for (i in json.person) {
for (j in json.person[i].attributes) {
var attribute_name = Object.keys(json.person[i].attributes[j]); // here because I won't know what are the actual names of those attributes
console.log("Person's ID: " +json.person[i].id + " /// Person's Attribute name: " +attribute_name + " /// Person's Value: " +json.person[i].attributes[j]['attribute_name']);
console.log("Person's Value: " +json.person[i].attributes[j]['attribute_name']); // this gives undefined
console.log("Person's Value: " +json.person[i].attributes[j].attribute_name); // this also gives undefined
}
}
如果有任何帮助,我很乐意更改 JSON 的结构。如果它们的名称不是“固定的”,有关如何获取这些属性名称的值的任何提示?
【问题讨论】:
-
你能解释一下你真正想要什么吗?
-
如前所述,想逐行列出所有人员及其 ID 和属性
标签: javascript json