遍历嵌套的json对象数组

我必须遍历json数组对象。

它具有以下结构。

var myJSONObject = {

"abc": {

"prod_1": [

{"prod_ver" : "prod 1 ver 1"},

{"prod_ver" : "prod 1 ver 2"},

],

"prod_2": [

{"prod_ver" : "prod 2 ver 1"},

{"prod_ver" : "prod 2 ver 2"},

],

"prod_3": [

{"prod_ver" : "prod 3 ver 1"},

{"prod_ver" : "prod 3 ver 2"},

]

}

};

基本上我在做的是prod_1是产品的名称,并且prod_1的版本列表已填充在其中。

所以现在我想要的是产品的名称以及它的版本。

问题在于可能有很多产品和该产品下的许多版本。所以我需要可以在 中使用适当的循环结构来对其进行处理。

最好将循环将产品名称存储在一个变量中,将版本存储在另一个变量中,因为我需要对产品名称进行一些检查。

如果json结构错误或可以编写更好的json结构,请提出正确/更好的结构。

提前致谢。

回答:

由于myJSONObject.abc包含产品列表,因此将属性定义abc为数组会更有意义。像这样:

var myJSONObject = 

{

"abc":

[

[

{"prod_ver" : "prod 1 ver 1"},

{"prod_ver" : "prod 1 ver 2"},

],

[

{"prod_ver" : "prod 2 ver 1"},

{"prod_ver" : "prod 2 ver 2"},

],

[

{"prod_ver" : "prod 3 ver 1"},

{"prod_ver" : "prod 3 ver 2"},

]

]

};

然后,您可以使用常规循环遍历产品及其版本:

for(var i = 0; i < myJSONObject.abc.length; i++)

{

var product = myJSONObject.abc[i];

for(var j = 0; j < product.length; j++)

{

var version = product[j];

}

}

您可以更进一步,并稍微改变JSON对象的结构,使其更易于理解。

var catalog = 

{

"products": [

{

"name": "prod 1",

"versions": [

"ver 1",

"ver 2"

]

},

{

"name": "prod 2",

"versions": [

"ver 1",

"ver 2"

]

}

]

};

for(var i = 0; i < catalog.products.length; i++)

{

var product = catalog.products[i];

var productName = product.name;

for(var j = 0; j < product.versions.length; j++)

{

var version = product.versions[j];

}

}

以上是 遍历嵌套的json对象数组 的全部内容, 来源链接: utcz.com/qa/414520.html

回到顶部