Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to access json data mule esb

Tags:

json

esb

mule

i want to access json data generated from the sync flow into an async flow. I am getting json data from sync flow correctly and i want to fetch certain attribute value from that my json data is as follows :

{"data" : [{"in_timestamp":"2012-12-04","message":"hello","out_timestamp":null,"from_user":"user2","ID":43,"to_user":"user1"}]} and to user is #[json:to_user]}

I want to access to_user attribute from this json format. I have tried using #[json:to_user] but it simply prints it as a string and doesnt return any value. Please help. Thanks in advance.

like image 681
S R Avatar asked Nov 30 '22 22:11

S R


2 Answers

JsonPath expression are depreciated for now and you will even not get enough document on it for doing ..
So, currently you need to use either :- <json:json-to-object-transformer returnClass="java.lang.Object" doc:name="JSON to Object" />
or <json:json-to-object-transformer returnClass="java.util.HashMap" doc:name="JSON to Object" />
or even <json:json-to-object-transformer returnClass="java.util.List" doc:name="JSON to Object" /> to extract data from JSON depending on the JSON data

like image 42
Anirban Sen Chowdhary Avatar answered Dec 03 '22 11:12

Anirban Sen Chowdhary


The right expression based on your sample JSON is:

#[json:data[0]/to_user]
like image 118
Seba Avatar answered Dec 03 '22 12:12

Seba