jquery从多维JSON数组中读取数据

时间:2018-06-18 12:21:20

标签: jquery json multidimensional-array

我有一个像这样的JSON数组:

json = [{id:"01.0635.6100",image:"https://www.innotec.nu/InnotecProduktBilder/clearBond.png?ver=0.1",name:"ClearBond",price:"189.00",quantity:"1"},{id:"07.1435",image:"https://www.innotec.nu/InnotecProduktBilder/easygasket.png?ver=0.1",name:"Easy Gasket",price:"200.00",quantity:"2"}]

我无法直接读取数据而无需像每个人一样循环,地图等。 我知道应该可以使用以下内容访问数组中的特定变量:

var pid = '07.1435'
json.id[pid].price
json[pid].price
json[id][pid].price

我已经尝试过"每一个"可能的解决方案,但我最终得到的是" Uncaught TypeError:无法读取属性' 07.1435'未定义"

如果这是一个重复的问题,我很抱歉,但确实如此。如果你能指出我正确的方向,我将非常感激

2 个答案:

答案 0 :(得分:1)

您可以使用Array#find方法查找具有正确ID的对象:

const json = [{id:"01.0635.6100",image:"https://www.innotec.nu/InnotecProduktBilder/clearBond.png?ver=0.1",name:"ClearBond",price:"189.00",quantity:"1"},{id:"07.1435",image:"https://www.innotec.nu/InnotecProduktBilder/easygasket.png?ver=0.1",name:"Easy Gasket",price:"200.00",quantity:"2"}];

console.log(json.find(e => e.id == '07.1435'));

答案 1 :(得分:0)

这里有一个对象数组。获取对象的一种方法是循环遍历数组:

$.each(json, function(index){
  console.log(this.id)
  console.log(this.image)
});

你也可以使用$ map()或简单的for循环来做到这一点。