We will see simple Java class Employee being transformed to and from JSON String.
Following is project structure generated by Maven

Following is POM.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>custom.jackson</groupId>
<artifactId>learning</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>learning</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.12.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.12.3</version>
</dependency>
</dependencies>
</project>
Bean class Employee.java
package custom.jackson.learning;
public class Employee {
private String firstName;
private String lastName;
private boolean isCertified;
private int age;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public boolean isCertified() {
return isCertified;
}
public void setCertified(boolean isCertified) {
this.isCertified = isCertified;
}
@Override
public String toString() {
return "Employee [firstName=" + firstName + ", lastName=" + lastName + ", isCertified=" + isCertified + ", age="
+ age + "]";
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
package custom.jackson.learning;
import java.io.IOException;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
ObjectMapper mapper = new ObjectMapper();
String jsonString = "{\"firstName\":\"Suresh\", \"lastName\":\"Rana\", \"certified\":\"true\", \"age\":21}";
try{
//Transform JSON to Employee Object
Employee employee_Suresh = mapper.readValue(jsonString, Employee.class);
System.out.println("print Java object");
System.out.println(employee_Suresh);
//Transform Employee object to JSON
jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(employee_Suresh);
System.out.println("print json converted string");
System.out.println(jsonString);
}
catch (JsonParseException e) { e.printStackTrace();}
catch (JsonMappingException e) { e.printStackTrace(); }
catch (IOException e) { e.printStackTrace(); }
}
}
Output
