json JOLT中的If-And语句

lh80um4z  于 2023-05-19  发布在  其他
关注(0)|答案(1)|浏览(142)

我正在尝试获取这个JSON片段:

"industryCodes": [
      {
        "code": "1234567",
        "description": "industry description1",
        "typeDescription": "standard1",
        "typeCode": "765",
        "priority": 0
      },
      {
        "code": "Fail",
        "description": "industry description1",
        "typeDescription": "standard1",
        "typeCode": "765",
        "priority": 1
      },
      {
        "code": "Fail2",
        "description": "industry description2",
        "typeDescription": "standard2",
        "typeCode": "0001",
        "priority": 0
      }]

要转换为此:

"standard1" : [ {
      "value" : "1234567"
    } ]

注意:这是一个更大的转换的一部分,所以下一个片段中的“[4]”是准确的。
这是我现在的代码:

{
  "operation": "shift",
  "spec": {
    "industryCodes": {
      "*": {
        "typeCode": {
          "765": {
            "@(2,code)": "[4].attributes.standard1[0].value"
          }
        }
      }
    }
  }
}

它输出:

"standard1" : [ {
      "value" : ["1234567","Fail"]
    } ]

主要的问题是让'Fail'的第二个值不包含在数组中。我只需要优先级为0的值,而不是所有优先级。我怎么能这样做呢?

huwehgph

huwehgph1#

然后,您可以选择industryCodes数组的第一个索引,例如

{
    "operation": "shift",
    "spec": {
      "industryCodes": {
        "0": { // will return first component
          "typeCode": {
            "765": {
              "@(2,code)": "[4].attributes.standard1[0].value"
            }
          }
        }
      }
    }
  }

相关问题