【问题标题】:How to search in nested JSON data in vuejs?如何在 vuejs 中搜索嵌套的 JSON 数据?
【发布时间】:2017-12-08 19:40:42
【问题描述】:

我有嵌套的 JSON 数据,例如:

[{"id":"1","province_id":"ABC","name":"City One"},{"id":"2","province_id":"EFG","name":"City Two"}]

我想通过 province_id 过滤 JSON 并将其放入另一个变量中。 VueJS 中是否有任何解决方案,例如 Vue.filter(); ? 我知道我们有“linq”可以完成这项工作,但我不想使用它。

【问题讨论】:

  • 你不能把它设置为一个变量,然后循环查看providence_id 属性吗? var yourQuestionCode = [{"province_id":1}]; yourQuestionCode[0].province_id

标签: javascript json search filter vuejs2


【解决方案1】:

您正在寻找的是 javascript 数组的 filter() 函数。你绝对应该花一些时间来熟悉过滤器,以及其他的,比如 map 和 reduce。它将使您的数据更容易切片和切块。

var serializedData = `[{"id":"1","province_id":"ABC","name":"City One"},{"id":"2","province_id":"EFG","name":"City Two"}]`;
var data = JSON.parse(serializedData);

var provinceAbc = data.filter(d => d.province_id === 'ABC');

该行将为您提供其省 ID 为“ABC”的所有对象

另外,由于您在帖子中提到“linq”,filter() 就像 IEnumerable.Where(),而 map() 就像 .NET Linq 术语中的 IEnumerable.Select()

【讨论】:

  • 感谢您的回答。我提到的“linq”是它的js实现link
【解决方案2】:

我认为这对你有用:

var nestedJson = `[{"id":"1","province_id":"ABC","name":"City One"},{"id":"2","province_id":"EFG","name":"City Two"}]`;
var array = JSON.parse(nestedJson);

array = array.map(e => e["province_id"]);

console.log(array);

【讨论】:

  • 这在技术上是不正确的,因为它会返回一个仅包含 Province_id 的对象列表,而不是返回与指定 id 匹配的完整对象列表
  • 感谢您的回答,但我想选择 JSON 中的所有对象,例如,它们的 province_id 等于 'ABC'。
猜你喜欢
  • 1970-01-01
  • 2016-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多