使用JavaScript过滤字符串属性上的JSON

Filtering JSON on string attribute with JavaScript

本文关键字:JSON 属性 字符串 JavaScript 过滤 使用      更新时间:2023-09-26

我正试图根据以下字符串属性过滤掉所有对象:

var data = $.parseJSON(valid_json); 
data = data.filter(function (el) {
  return (el.name == 'myName');
});

这返回一个空数组,但比较整数有效:

var data = $.parseJSON(valid_json); 
data = data.filter(function (el) {
  return (el.price == 1000);
});

这将获得价格=1000 的所有对象

我做错了什么?

如果您有一个有效的json,那么您不必解析它来创建一个有效json。只有当您有一个有效的json字符串,如:时,才应该这样做

var jsonstr = '{"name":"Foo", "price":"1000"}'; // this one needs parsing.

空数组的原因可能是您瞄准了对象键的错误值,或者该值在您拥有的对象中不存在。

事实上,这对我有效:

var data = [{name:"Foo", price:1000}, {name:"Bar", price:1000}]; 
data = data.filter(function (el) {
  return (el.name == 'Foo');
});
document.body.innerHTML = '<pre>'+ JSON.stringify(data) +'</pre>';