如何构建一个将返回包含特定名称/值对的json对象的javascript

时间:2019-07-06 19:51:09

标签: javascript json

以下面的json为例,我想编写一个js代码,该代码仅返回包含特定名称/值对的对象:

用例1:仅返回包含名称-值对“ currency”:“ RON”的json对象

嵌套案例用例2:仅返回包含名称-值对“ product_id”的json对象:“ 1084929”

我想用普通的js而不是jquery来完成。

为什么这对我有帮助?有时我必须验证大型json文件,这将有助于根据特定用例将json“收缩”到某些令我感兴趣的对象。

{
    "results": [
        {
            "currency": "RUB",
            "status": "approved",
            "order_id": "Y3411851",
            "click_country_code": "RU",
            "positions": [
                {
                    "product_id": "1084929",
                    "amount": "2290.00"
                }
            ],

            "action_date": "2019-03-30 00:42:23",
            "processed": 1,
            "action_type": "sale",
            "action": "Оплаченный заказ"
        },
        {
            "currency": "RON",
            "status": "declined",
            "order_id": "Y3415290",
            "click_country_code": "RO",
            "positions": [
                {
                    "product_id": "1052297",
                    "amount": "4390.00"
                }
            ]
        }
    ]
}

1 个答案:

答案 0 :(得分:1)

尝试一下:

假设您的“结果”数组位于名为“ obj”的对象内,请首先执行以下操作:

let results = obj.results;

然后

情况1:

results.filter(obj=>obj.currency === "RON")

情况2:

results.filter(
  obj =>
    Array.isArray(obj.positions) &&
    obj.positions.some(
      position => position && position.product_id === "1084929"
    )
);