我必须遍历 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 的版本列表填充在其中。
所以现在我想要的是产品名称及其版本。
问题是该产品下可能有很多产品和很多版本。 所以我需要一个合适的 javascript 循环结构,它可以通用来处理它。
如果循环将产品名称存储在一个变量中,而它的版本存储在另一个变量中,那将是最好的,因为我需要对产品名称进行一些检查。
如果 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];
}
}
关于javascript - 遍历嵌套的 json 对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15268594/