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

时间:2015-10-27 07:56:11

标签: javascript jquery json filter

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

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);
});

这将获得price = 1000

的所有对象

我做错了什么?

1 个答案:

答案 0 :(得分:0)

如果你有一个有效的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>';
&#13;
&#13;
&#13;