javascript - 如何通过ID获取json数组中的数据

标签 javascript jquery html ajax json

我有一个问题,你能帮帮我吗? 我有一个 json 数组:

"category" : [
{
    id: 1,
    product: [{id : product_1, type : ball}] 
},
{
    id : 2,
    product :[{id : product_2, type : pen}]
}
]

我的问题是:如果我有一个链接,例如:http://test/category/1那么,如何获取id=1的商品分类信息呢? 感谢您的任何建议:)

最佳答案

这是一种无需使用 for 就可以在一行中完成的方法:

function filterById(jsonObject, id) {return jsonObject.filter(function(jsonObject) {return (jsonObject['id'] == id);})[0];}

然后如果你想得到,比如id=2的对象,你只需要使用:

var selectedObject = filterById(yourJson['category'], 2);

然后 selectedObject 将根据您的示例获得此值:

{
    id : 2,
    product :[{id : product_2, type : pen}]
}

有一个缺点:旧浏览器,如 IE8,不支持 filter() 所以你需要添加这个 polyfill 代码来兼容旧浏览器: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter#Polyfill

关于javascript - 如何通过ID获取json数组中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8163859/

相关文章:

javascript - 如何在 Bootstrap 中启用搜索框的下拉菜单

javascript - 如何在方法中等待firebase、获取数据并返回数组?

javascript - 如何在克隆元素上应用事件?

javascript - 使用 AngularJS 和 jQuery 修改 DOM (slideDown/slideUp)

javascript - 不在下拉列表中显示所选项目

javascript - 为什么一个元素在从 DOM 中移除后仍然可以访问?

javascript - React-native:未定义不是一个对象

javascript - 如何在覆盖后调用原始方法

javascript - Bootstrap 模态中的表单验证

html - 仅在 Firefox 中应用 CSS 规则