How to convert string to json object using DataWeave

Viewed 80

How do I convert below input string (which will be retrieved from config.yaml properties file) to required json object using Dataweave?

Input:

"ABC:123,DEF:456,GHI:789"

Required Output:

{
    "ABC":"123",
    "DEF":"456",
    "GHI":"789"
}
2 Answers

splitBy and reduce can be used like below

("ABC:123,DEF:456,GHI:789" splitBy ",") reduce ((item, accumulator={}) -> 
    accumulator ++ 
    do
    {   
        var items = item splitBy  ":"
        ---
        (items[0]): items[1]
    })
%dw 2.0
output application/json
---

{(("ABC:123,DEF:456,GHI:789" splitBy ",")  map {
    ({ (($ splitBy ":")[0]): (($ splitBy ":")[1])})

})}
Related