Dataweave JSON 过滤器

Dataweave JSON filter

我正在尝试 select 来自 JSON 请求的数据

[
    {
        "Field1": "data1",
        "Field2": "set1",
        "Field3": "reset1"
    },
    {
        "Field1": "data2",
        "Field2": "set2",
        "Field3": "reset2"
    },
    {
        "Field1": "data3",
        "Field2": "set3",
        "Field3": "reset3"
    },
    {
        "Field1": "data4",
        "Field2": "set4",
        "Field3": "reset4"
    }
]

我想 select field3 的字符串值,其中 field2 是 "set3"。即"reset3".

我试过的DWL:

payload.Field3 filter (payload.Field2 ==["set3"])

您可以这样过滤:

<logger level="ERROR" message="Field3:::: #[(payload filter ($.Field2 =='set3'))[0].Field3]" />

过滤 returns 数组,因为数组选择器 [0] 如果有可能出现多个结果,您可能需要更改表达式。

Use可以使用这个DW表达式:

%dw 1.0
%output application/json
---
payload filter ($.Field2=="set3") map {
    Field3: $.Field3
}

结果:

[
   {"Field3": "reset3"}
]