Skip to main content

Convert the Java Objects to JSON using Jackson API and vice versa


JSON Stand for JavaScript Object Notation. It is mostly used for transmitting the data in web applications. JSON is highly recommended to transfer data between a server and web application. To convert a Java object into JSON, the JACKSON API can be used:

In below example, Java object is converted into the JSON using the Jackson API:

Steps1: Add jar files of Jackson in the Maven project 

Add Jackson dependencies in pom.xml file as below:

<dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.5.3</version>
</dependency>

or Add below JARs manually to the Project's build path as external JARs:

jackson-core-asl-1.9.11.jar
jackson-mapper-asl-1.9.11.jar
jackson-xc-1.9.11.jar

Above are the Jackson API JARs which converts the Java Objects(POJO) to JSON and vice versa.


Steps2:  Create a POJO (Plain Old Java Object) to be converted into JSON

The POJO class:
============

public class KeyValuePair {

public String key;
public String value;

// The getters and setters
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}

}

Steps 3: Create a Java class for converting the JSON into KeyValuePair object. Below program converts the JSON into Java objects using ObjectMapper class of Jackson API.

import org.codehaus.jackson.map.ObjectMapper;

public class TestProgram {
public static void main(String[] args) {

String inputJson="{\"key\":\"Hello\", \"value\":\"World\"}";

ObjectMapper mapper = new ObjectMapper();

try {
KeyValuePair kv = mapper.readValue(inputJson, KeyValuePair.class);

System.out.println(kv.getKey());
System.out.println(kv.getValue());

} catch(Exception e) {
e.printStackTrace();
}

  }
}

Output: (The Java Objects)
Hello
World


To convert the KeyValuePair POJO to JSON, we will use the following methods of Jackson API:

ObjectMapper Obj = new ObjectMapper();
try {
ObjectWriter ow = Obj.writer().withDefaultPrettyPrinter();
String jsonStr = ow.writeValueAsString(kv);
         
// Displaying JSON String
            System.out.println(jsonStr);
         
        }catch (IOException e) {
            e.printStackTrace();
        }
    }

Output: (The JSON string)
{
  "key": "Hello",
  "value": "World"
}


Pankaj

Comments

Popular posts from this blog

Spring Cloud vs AWS/GCP/Azure Cloud - In the realm of Distributed Systems Development

The Scalability and High-Availability have become defacto standards for Distributed Systems development. The traditional applications are moving fast from the On-Prem model to the Cloud. With such requirements, it has become imperative to build an application with robust APIs or Cloud Services having fault-tolerant and graceful fallback functionality. Spring framework has emerged as a full-fledged, robust, feature-rich and mature ecosystem over time. It has been equipped with lots of features for rapid development. Spring Boot dominates the Cloud Native Software development. With the introduction of Spring Boot, the Microservices development has catapulted to a whole new level as it brings all sorts of dependencies in one place. Spring Cloud is an umbrella project under the Spring ecosystem. It consists of many sub-projects to build a robust distributed system. It was primarily developed by Netflix and open-sourced as part of Netflix OSS to create resilient, fault-tolerant and s...

Program "make" not found in PATH in Eclipse

In order to fix the error "Program "make" not found in PATH in Eclipse", follow below steps: Right Click on the Project -> Properties -> C/C++ Build ->Environment Check PATH, if it has C:\cygwin64\bin in the path or not. Sometimes path set in Environment variables is not reflected in the Eclipse, so you have to edit it here. Build/Restart the eclipse again, you should be able to get rid of the error. If it still persists, do right click on the Project -> Properties -> C/C++ Build ->Tool Chain Editor Current toolchain: ->Cygwin GCC Current builder: -> GNU Make Builder It should work now !! Pankaj

Create the Vsix package from a class library

A project that was created as a class library that contains numerous controls that can be used in windows forms applications. In order to create an installation package (*.vsix) that will embed these controls into the visual studio toolbox window. The controls are visible in the toolbox window when being in the solution that has this project within itself. I have created a vsix project and referenced the component project's dll as a Microsoft.VisualStudio.Assembly asset. The VS2017 build process creates the vsix file that I need. When I run it on a system with a fresh VS installation, it goes through the install process with no problems, but the components don't show up in the toolbox. When I try to register the asset as a Microsoft.VisualStudio.ToolboxControl, I get the error 'The target "PkgdefProjectOutputGroup" does not exist in the project.  To reslolve the below error which comes while adding reference of DLL application to VSIX project for Visual ...