sizeOf operator in Dataweave in Mule

sizeOf operator in Dataweave in Mule


sizeOf operator returns the size of array or string. Let's check out below example.








Dataweave code:

%dw 1.0
%output application/json
---
{

  arraySize: sizeOf [1,2,3],
  textSize: sizeOf "Himanshu",
  objectSize: sizeOf {a:1,b:2},
  sizeOf: sizeOf payload

}


URL:  http://localhost:8081/sizeof


Input:

[{ "id":1 }, { "id":2 }]


Output:

{
  "arraySize"3,
  "textSize"8,
  "objectSize"2,
  "sizeOf"2
}


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_sizeofFlow"> <http:listener config-ref="HTTP_Listener_Configuration" path="/sizeof" doc:name="HTTP"/> <dw:transform-message doc:name="Transform Message"> <dw:set-payload><![CDATA[%dw 1.0 %output application/json --- { arraySize: sizeOf [1,2,3], textSize: sizeOf "Himanshu", objectSize: sizeOf {a:1,b:2}, sizeOf: sizeOf payload }]]></dw:set-payload> </dw:transform-message> </flow> </mule>