首页 > 解决方案 > 如何在javascript中查询一个json数组

问题描述

如何解析下面的示例 json 并创建另一个名称为 allen 或 tom 或 jack 的 json。名称可以出现任意次数。

{
  "responseCode": 0,
  "responseMessage": "SUCCESS",
  "data": [{
      "name": "tom",
      "school": "abc",
      "college": "def"
    },
    {
      "name": "harry",
      "school": "abc",
      "college": "def"
    },
    {
      "name": "jack",
      "school": "abc",
      "college": "def"
    },
    {
      "name": "tom",
      "school": "abc",
      "college": "def"
    },
    {
      "name": "allen",
      "school": "abc",
      "college": "def"
    }
    ...
    ...
  ]
}

标签: javascriptarraysjsonparsing

解决方案


尝试使用Array.prototype.filter

const data = `{
    "responseCode": 0,
    "responseMessage": "SUCCESS",
    "data": [
        {
            "name": "tom",
            "school": "abc",
            "college": "def"
        },
        {
            "name": "harry",
            "school": "abc",
            "college": "def"
        },
        {
            "name": "jack",
            "school": "abc",
            "college": "def"
        },
        {
            "name": "tom",
            "school": "abc",
            "college": "def"
        },
        {
            "name": "allen",
            "school": "abc",
            "college": "def"
        }
    ]
}`

const dataObject = JSON.parse(data);
const filteredResults = dataObject.data.filter(function (entry) {
    return ['tom', 'jack', 'allen'].indexOf(entry.name) !== -1
})
console.log(filteredResults);


推荐阅读