DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Newsletter
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Related

  • Replacing JSON With Protobuf in Your Microservice Mesh: A Zero-Downtime Migration Blueprint
  • Proper Java Exception Handling
  • Generics in Java and Their Implementation
  • Commonly Occurring Errors in Microsoft Graph Integrations and How To Troubleshoot Them (Part 4)

Trending

  • Frame Buffer Hashing for Visual Regression on Embedded Devices
  • AI Agents for Software Engineering and Autonomous Development Workflows
  • Designing Memory Architecture for Stateful AI Agents: Short-Term Context and Long-Term Persistence
  • Evaluating RAG in Production — What the Numbers Actually Revealed

Draft This article hasn't been published, so readers can't see it.

In moderation This article is waiting for review, so readers can't see it yet.

Deleted This article has been deleted, so readers can't see it.

  1. DZone
  2. Coding
  3. Languages
  4. Payload Transformation: JSON to Object

Payload Transformation: JSON to Object

See how to transform an incoming JSON payload into a Java object. Lots of development work revolves around payload transformation, so this is important to know.

By 
Christopher Co
·
Apr. 16, 17 · Tutorial
Post on X (opens in a new tab) Share on LinkedIn (opens in a new tab)
98.1K Views

Join the DZone community Save articles, join the discussion, and download Refcards and Trend Reports with a free account.

Join for free Already a member? Log in

When you are first starting out with Mule, it is very important to learn the basics, such as how to manipulate the incoming payload.

In this article, I am going to explain how you to transform an incoming payload (JSON) to a Java object.

Most of the work in development revolves around payload transformation, so it is very important to tackle this — especially for beginners.

I will first show the basics, and later on, we will get into the more advanced stuff.

The Basics

Let's first start by posting a very basic JSON string as payload.

Image title

Given the JSON string above, let's now define a transformer component in our flow.

In our case, we are going to use a JSON to Object transformer.

Image title

Under the General properties of the JSON to Object transformer component, you can define your desired return class.

Let's define java.util.HashMap as the return class for this example.

Image title

Once you run the flow above, our JSON string payload is then converted to a Java object HashMap. You will then be able to access the properties of your payload through payload.<propertyname>, wherepropertyname is defined in the JSON string (i.e. payload.age).

You can also use other Java Objects such as java.util.ArrayList, java.util.LinkedList, etc.

Taking It Further

What if you would like to transform the incoming JSON string into a custom Java object?

In order for us to satisfy this, let's first define a custom Java class (Student) withGET and SET methods.

Image title

Note: The custom Java class' variables should have the exact same name (case sensitive) as the JSON string's properties. If the names are different, the transformer component will throw an error.

Once this is done, we can then change the return class of the JSON to Object transformer component we defined earlier to our custom class: packageName.className.

For example, myschool.model.Student:

Image title

Let's try to debug this example.

Image title

As you can see, our original payload has been transformed into the custom Java object Student.

We can then try to access the properties of our payload through payload.<propertyname>,propertyname being defined in the custom Java class — i.e. payload.age.

Next Steps

How about transforming the JSON String into a custom Java object with a custom Java object children?

Does this also work using the JSON to Object component?

The answer is yes!

Let's try to make our JSON string a little bit more complex.

Image title

We now have an additional JSON properties named subjects.

If we are going to use the previous custom Java class we defined, the transformer component will throw an UnrecognizedPropertyException exception since we have not defined any property named subjects in our Java class.

In order for us to satisfy this condition, let's first start creating another class named Subject and add the list of Subject into our Student class later on.

Our Subject class should look like this:

Image title

After defining our Subject class, we can then add it into our Student class.

Add the following code into Student.java: private List subjects; .

Don't forget to add the GET and SET methods for the newly added variable subjects.

Image title

Let's now test our application and check to see if the payload transformation to our newly defined custom Java class is successful.

Image title

As you can see from the image above, our JSON string has been successfully transformed into our new custom Java object!

JSON Object (computer science) Payload (computing) Java (programming language) Strings Data Types

Opinions expressed by DZone contributors are their own.

Related

  • Replacing JSON With Protobuf in Your Microservice Mesh: A Zero-Downtime Migration Blueprint
  • Proper Java Exception Handling
  • Generics in Java and Their Implementation
  • Commonly Occurring Errors in Microsoft Graph Integrations and How To Troubleshoot Them (Part 4)

Partner Resources

×

Comments

Loading comments

The comments didn't load

Please try again in a moment.

Likes

Loading

The next likes didn't load. Please try again.

The likes didn't load

Please try again in a moment.

See who liked this

Log in or join DZone for free to see who liked this article.

Log in Join for free
  • RSS
  • X
  • Facebook

ABOUT US

  • About DZone
  • Support and feedback
  • Community research

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 215
  • Nashville, TN 37211
  • [email protected]

Let's be friends:

  • RSS
  • X
  • Facebook