Javascript 如何从JSON中嵌套的数组中检索值
我想知道如何使用jQuery或纯JavaScript从JSON对象访问“result 2”的值Javascript 如何从JSON中嵌套的数组中检索值,javascript,jquery,json,multidimensional-array,nested,Javascript,Jquery,Json,Multidimensional Array,Nested,我想知道如何使用jQuery或纯JavaScript从JSON对象访问“result 2”的值 var jsonarray = [{ title: "Kategori1", items: [{ result: "Item1", //Nested array items2: [{ //How to get the value of result2 result2: "item1 item1" }], }, { resu
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)代码>
我得到:
…在控制台里,但在那之后我就被卡住了
我试过:
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
};
}
for(变量i=0;i
试试这个:
this.data.items[i].items2[0].result2;
items2
是一个数组,必须通过索引访问
this.data.items[0].items2[0].result2
此外,您的JSON格式不正确。后面有逗号
var data=JSON.stringify({
标题:“Kategori1”,
项目:
[
{
结果:“第1项”,
项目2:[
{
结果2:“项目1项目1”
}]
},
{
结果:“项目2”
},
{
结果:“项目3”
}
]
});
var json=json.parse(数据);
警报(json.items[0].items2[0].result2)代码>正如我已经评论过的,在方括号的末尾之前有一个尾随逗号。请删除以使您的JSON
有效
试试下面的方法
解决方案1:无需迭代即可直接访问。
解决方案2:迭代解决方案
var jsonarray=[{
标题:“Kategori1”,
项目:[{
结果:“第1项”,
//嵌套数组
项目2:[{
//如何获取result2的值
结果2:“项目1项目1”
}],
}, {
结果:“项目2”
}, {
结果:“项目3”
}]
}];
//迭代jsonarray数组。
for(var i=0;i }
我之前的答案是在您使用实际JSON时编写的,但我正在编辑此答案以满足您的标准
您有一个JavaScript数组,而不是JSON。要访问项result2
,您可以执行以下代码行:
console.log(jsonarray[0].items[0].items2[0].result2);
因为这不是JSON,所以您不需要引用数据
对象。请检查我的答案,如果您对我的两个解决方案有任何问题,我们将继续。2您发布的内容是Javascript对象文本的一部分,而不是JSON。在JSON中,所有属性名都必须加引号,并且不允许使用尾随逗号。他发布的是Javascript文本,而不是JSON。Javascript中允许尾随逗号。@Barmar,注意我用JSON.parse(数据)将他的“JSON”转换为实际的JSON代码>行在我的示例中,为什么首先需要将其转换为JSON?如果您有一个对象,只需访问它即可。@Barmar很好。Object=>JSON=>Object&&access对象| | access对象。我想我只是喜欢mental ferris Wheels谢谢你的回复,为了一个好的解决方案,我更新了我的帖子,去掉了逗号尾随。好吧,如果你知道名字和级别,这一切都很好。如果您不知道这在结构中的位置,是否有一种通用的方法来执行此操作?我需要检索一个嵌套在一个JSON对象中6深的字段,并将其与另一个嵌套在2深的对象中的相同字段进行比较,我需要使其足够通用,以便在任何复杂对象中搜索特定字段。
document.write(jsonarray[0].items[0].items2[0].result2);
console.log(jsonarray[0].items[0].items2[0].result2);