在使用JOLT规范过滤数组时如何使用“不相等”条件

时间:2019-02-25 20:59:52

标签: json jolt

我想使用JSON变换(条件为负)过滤JOLT数组。在下面的示例中,我只希望记录URL的值不等于Not Available.

的情况

{
  "Photos": [
    {
      "Id": "327703",
      "Caption": "TEST>> photo 1",
      "Url": "Not Available."
    },
    {
      "Id": "327704",
      "Caption": "TEST>> photo 2",
      "Url": "http://bob.com/0001/327704/photo.jpg"
    },
    {
      "Id": "327705",
      "Caption": "TEST>> photo 3",
      "Url": "http://bob.com/0001/327705/photo.jpg"
    }
  ]
}

1 个答案:

答案 0 :(得分:0)

看看非常相似的问题Removing Elements from array based on a condition。基于它,您可以解决以下问题:

[
  {
    "operation": "shift",
    "spec": {
      "Photos": {
        // loop thru all the photos
        "*": {
          // for each URL
          "Url": {
            // For "Not Available." do nothing.
            "Not Available.": null,
            // In other case pass thru
            "*": {
              "@2": "Photos[]"
            }
          }
        }
      }
    }
    }
]

通常,当您想取消过滤条件时,您需要进行过滤,并在转换通过null时跳过项目。