我必须遍历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为数组会更有意义。像这样:
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]; } }