【问题标题】:jquery read data from multidimensional JSON arrayjquery 从多维 JSON 数组中读取数据
【发布时间】:2018-06-18 12:21:20
【问题描述】:

我有一个这样的 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"}]

我无法直接读取数据,而无需像 each、map 等那样循环。 我知道应该可以使用以下方式访问数组中的特定变量:

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

我已经尝试了“所有”可能的解决方案,但最终得到的只是“未捕获的类型错误:无法读取未定义的属性 '07.1435'”

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

【问题讨论】:

  • 转换成对象jQuery.parseJSON(json)再试试。

标签: jquery json multidimensional-array


【解决方案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'));

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-20
      相关资源
      最近更新 更多