我想知道如何访问"结果2"使用jQuery或纯JavaScript从我的JSON对象。
var jsonarray = [{
title: "Kategori1",
items: [{
result: "Item1",
//Nested array
items2: [{
//How to get the value of result2
result2: "item1 item1"
}],
}, {
result: "Item2"
}, {
result: "Item3"
}]
}];
如果我运行console.log(this.data.items[i].items2);
我明白了:
[Object { result2="item1 item1"}]
[Object { result2="item4 item4"}]
...在控制台中,但之后我就陷入了困境。
我尝试过:
this.data.items[i].items2.result2; // Not working
还有另一个循环:
for (var i = 0; i < this.data.items.length; ++i) {
this.data.items[i].result, // Gives me the result from the items array, working
for (var items2 in this.data.items[i]) {
var result = this.data.items[i]['items2'];
console.log(result.result2); //Not working
};
}
答案 0 :(得分:1)
正如我已经评论过的那样,在方括号结束之前有逗号。请删除以使JSON
有效。
尝试如下。
document.write(jsonarray[0].items[0].items2[0].result2);
var jsonarray = [{
title: "Kategori1",
items: [{
result: "Item1",
//Nested array
items2: [{
//How to get the value of result2
result2: "item1 item1"
}],
}, {
result: "Item2"
}, {
result: "Item3"
}]
}];
// Iterate jsonarray Array.
for(var i = 0; i < jsonarray.length; i++) {
// Iterating Array Element: Items.
var items = jsonarray[i].items;
for(var j = 0; j < items.length; j++) {
var itemsItem2 = items[j].items2;
// Checking whether Item2 is exist and variable type is Array.
if(itemsItem2 && itemsItem2.constructor == Array) {
// Iterating Items items2.
for(var k = 0; k < itemsItem2.length; k++) {
document.write(itemsItem2[k].result2);
}
}
}
}
&#13;
答案 1 :(得分:0)
试试这个:
std::shared_ptr
答案 2 :(得分:0)
items2
是一个数组,必须由索引
this.data.items[0].items2[0].result2
此外,您的JSON格式不正确。你有逗号逗号。
var data = JSON.stringify({
title: "Kategori1",
items:
[
{
result: "Item1",
items2: [
{
result2: "item1 item1"
}]
},
{
result: "Item2"
},
{
result: "Item3"
}
]
});
var json = JSON.parse(data);
alert(json.items[0].items2[0].result2);
答案 3 :(得分:0)
我之前的答案是在你有实际的JSON时编写的,但我正在编辑它以符合你的标准。
你有一个JavaScript数组,而不是JSON。要访问项目result2
,您可以执行以下代码行:
console.log(jsonarray[0].items[0].items2[0].result2);
由于这不是JSON,因此您无需引用data
对象。