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

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

这将获取价格 = 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>';

关于javascript - 使用 JavaScript 过滤字符串属性上的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33362514/

相关文章:

javascript - 安全地处理 Node 中的错误 JSON.parse()

Javascript 确认多项更改

php - 关闭 colorbox 模式窗口时如何防止退出时出现 javascript 警报?

jquery - 如何更改 JQuery UI 对话框的可调整大小句柄的背景颜色?

Javascript/Css 导航未显示在仅在 ie 中准备就绪的 jquery 文档中

mysql 问题使用来自 json 字符串的连接来获取一个唯一值

javascript - 发生后如何获取url参数

javascript - 在输入字段中键入时使用正则表达式替换

javascript - JQuery 未捕获错误 : cannot call methods on button prior to initialization; attempted to call method 'loading'

ios - 正在获取链接中带有 %20 的 JSON