pluck operator in Dataweave in Mule
pluck converts an object into an array. we can collect keys and values in a separate array.
Dataweave expression:
%dw 1.0
%output application/json
---
values: payload map (value,key)->
{
a:value pluck $,
b:value pluck $$
}
URL: http://localhost:8081/pluck
Input :
[{ "id":1, "name":"dd" },{ "id":2, "name":"ee" }]
Output:
{
"values": [
{
"a": [
1,
"dd"
],
"b": [
"id",
"name"
]
},
{
"a": [
2,
"ee"
],
"b": [
"id",
"name"
]
}
]
}
XML project code :
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:dw="http://www.mulesoft.org/schema/mule/ee/dw" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/dw http://www.mulesoft.org/schema/mule/ee/dw/current/dw.xsd">
<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration"/>
<flow name="test_pluckFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/pluck" doc:name="HTTP"/>
<dw:transform-message doc:name="Transform Message">
<dw:set-payload><![CDATA[%dw 1.0
%output application/json
---
values: payload map (value,key)->
{
a:value pluck $,
b:value pluck $$
}]]></dw:set-payload>
</dw:transform-message>
</flow>
</mule>
No comments:
Post a Comment