JSON 解析多个条件

夹克

我正在努力使用 JSON.parse 从下面的 JSON 输入中获得所需的输出。我正在使用 javascript,基本上,我需要根据类别名称获取每个类别的 id。我的系统中有名称作为条件,现在我需要获取所有 3 个 ID。

JSON 数据:

{"TokenID": "9FBBD91BBB",
"OrgID": 0,
"OutputObject": {
    "SUBROOT": [{
        "Parent Category": "Hardware",
        "Parent CategoryId": 2,
        "Sub Category": "Computer",
        "Sub CategoryId ": 3,
        "Child Category": "CPU",
        "Child CategoryId": 4,
        "Tenant": "IT"
    },
    {
        "Parent Category": "Hardware",
        "Parent CategoryId": 2,
        "Sub Category": "Router",
        "Sub CategoryId ": 3,
        "Child Category": "Cisco",
        "Child CategoryId": 6,
        "Tenant": "IT"
    },
    {
        "Parent Category": "Software",
        "Parent CategoryId": 7,
        "Sub Category": "Windows",
        "Sub CategoryId ": 8,
        "Child Category": "Operating System",
        "Child CategoryId": 9,
        "Tenant": "IT"
    },
    {
        "Parent Category": "Software",
        "Parent CategoryId": 7,
        "Sub Category": "ERP",
        "Sub CategoryId ": 10,
        "Child Category": "SAP",
        "Child CategoryId": 11,
        "Tenant": "IT"
    }]
  }
}

询问

{
        "Parent Category": "Hardware",
        "Sub Category": "Router",
        "Child Category": "Cisco"
}

期望输出:

"Parent CategoryId": 2,
"Sub CategoryId ": 3,
"Child CategoryId": 6
耀西

我的建议是将这两个要求分开。首先获取与您的查询匹配的所有条目,然后提取您需要的密钥。例如:

// match query against every entry in input
const match = (query, input) => input.filter((entry) => Object.entries(query).every(([k, v]) => entry[k] === v));

// pluck only the required keys from every entry in input
const pluck = (keys, input) => input.map((entry) => keys.reduce((acc, k) => ({...acc, [k]: entry[k]}), {}));

//////////

const input = {
  "TokenID": "9FBBD91BBB",
  "OrgID": 0,
  "OutputObject": {
    "SUBROOT": [
      {
        "Parent Category": "Hardware",
        "Parent CategoryId": 2,
        "Sub Category": "Computer",
        "Sub CategoryId ": 3,
        "Child Category": "CPU",
        "Child CategoryId": 4,
        "Tenant": "IT"
      },
      {
        "Parent Category": "Hardware",
        "Parent CategoryId": 2,
        "Sub Category": "Router",
        "Sub CategoryId": 3,
        "Child Category": "Cisco",
        "Child CategoryId": 6,
        "Tenant": "IT"
      },
      {
        "Parent Category": "Software",
        "Parent CategoryId": 7,
        "Sub Category": "Windows",
        "Sub CategoryId": 8,
        "Child Category": "Operating System",
        "Child CategoryId": 9,
        "Tenant": "IT"
      },
      {
        "Parent Category": "Software",
        "Parent CategoryId": 7,
        "Sub Category": "ERP",
        "Sub CategoryId": 10,
        "Child Category": "SAP",
        "Child CategoryId": 11,
        "Tenant": "IT"
      }
    ]
  }
};
const query = {
  "Parent Category": "Hardware",
  "Sub Category": "Router",
  "Child Category": "Cisco"
};

// apply
const matches = match(query, input.OutputObject.SUBROOT);
const reduced = pluck(['Parent CategoryId', 'Sub CategoryId', 'Child CategoryId'], matches);

console.log(reduced);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

解析JSON中的多个Apis

来自分类Dev

jQuery解析多个对象的json

来自分类Dev

json Java中的多个json数据解析

来自分类Dev

用多个json对象解析json

来自分类Dev

json解析数据集搜索条件无效

来自分类Dev

JSONObject中的多个JSONObject的Android JSON解析

来自分类Dev

从Twitter解析Json数据的多个细节

来自分类Dev

解析通过Ajax返回的多个json列表

来自分类Dev

将JSON解析为多个Java Pojos

来自分类Dev

解析多个相同键的JSON简单Java

来自分类Dev

在Oracle中解析多个Json数组元素

来自分类Dev

将JSON解析为多个Typescript对象

来自分类Dev

从Twitter解析Json数据的多个细节

来自分类Dev

JAVA / JSON:解析多个对象数据

来自分类Dev

解析来自多个Json对象的数据

来自分类Dev

解析json_decode()多个结果

来自分类Dev

将JSON解析为多个Java Pojos

来自分类Dev

在Android中解析多个JSON对象

来自分类Dev

解析多个相同键的JSON简单Java

来自分类Dev

js解析json多个元素与单个元素

来自分类Dev

解析复杂的JSON:多个循环与类

来自分类Dev

从多个 URL 解析 JSON 后显示视图

来自分类Dev

_Filrer 使用多个条件过滤 JSON

来自分类Dev

按多个条件过滤 JSON 结果

来自分类Dev

jQuery-从多个URL解析JSON并追加到多个div

来自分类Dev

在JavaScript中解析JSON以获取多个JSON对象

来自分类Dev

使用android解析多个Json数组内的Json数组

来自分类Dev

使用python解析JSON以根据条件获取值

来自分类Dev

使用python解析JSON以根据条件获取值