Search code examples
muledataweavemule-esb

Dataweave JSON filter


I am trying to select data from a JSON request based on one of the field

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

I want to select string value of field3 where field2 is "set3". That is "reset3".

DWL I tried:

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

Solution

  • Use can use this DW expression:

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

    Result:

    [
       {"Field3": "reset3"}
    ]