In this article, we will discuss Java Object to JSON conversion and vice-versa using Gson library.
1. JSON – JavaScript Object Notation
- Often, we need to transmit data betwen server and client (web or mobile application) and to achieve this we can use either XML or JSON
- JSON is very popular format to exchange data between server and client
- It is light-weight in nature and it is widely used
- Moreover, JSON structure is self-explaining about the data it contains
- Below is the example of Student information in JSON structure
{
"rollNumber": 28,
"name": "Mani",
"percentage": 50.56
}
2. Java Object
- Java object is an instance of class
- Below is the Student class (POJO) equivalent to above mentioned JSON structure
Student.class
package net.bench.resources.convert.json.to.java;
public class Student {
// member variables
private int rollNumber;
private String name;
private double percentage;
// default no-arg constructor
// getters & setters
// toString()
@Override
public String toString() {
return "Student [rollNumber=" + rollNumber
+ ", name=" + name
+ ", percentage=" + percentage
+ "]";
}
}
3. Libraries required for Gson :
- Gson library
4. Maven co-ordinates :
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.9</version>
</dependency>
5. Java Object to JSON conversion :
Using Gson library, we can convert Java Object to equivalent JSON String and vice-versa
5.1 Steps to convert Java Object to JSON
- Create Java/Maven project and add required Gson library to Build path
- Create POJO class for Student which we already created in the above step
- Create main Java class to convert Java Object to JSON using Gson API
JavaObjectToJsonStringUsingGson.java
package net.bench.resources.convert.json.to.java;
import com.google.gson.Gson;
public class JavaObjectToJsonStringUsingGson {
// 1. main() method
public static void main(String[] args) {
// 1.1 get Student object
Student student = createStudent();
// 1.2 create Gson object
Gson gson = new Gson();
// 1.3 Gson - Java object to JSON string
String convertedJsonString = gson.toJson(student);
// 1.4 print to console
System.out.println("Gson - Java object to JSON string :- \n\n"
+ convertedJsonString);
}
// 2. This method is used to create Student object
private static Student createStudent() {
// 2.1 create Student object
Student student = new Student();
// 2.2 set values for Student object
student.setRollNumber(28);
student.setName("Bharathi");
student.setPercentage(50.56);
// 2.3 return Student object
return student;
}
}
Output :
Gson - Java object to JSON string :-
{"rollNumber":28,"name":"Bharathi","percentage":50.56}
5.2 Steps to convert Java Object to JSON in pretty print format :
In the above conversion from Java Object to JSON, final JSON is printed in single line with no formatting. Therefore, if it is required to pretty print JSON in structured fomat then we can use GsonBuilder for printing JSON in presentable format.
JavaObjectToJsonStringUsingGsonPrettyPrint.java
package net.bench.resources.convert.json.to.java;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class JavaObjectToJsonStringUsingGsonPrettyPrint {
// 1. main() method
public static void main(String[] args) {
// 1.1 get Student object
Student student = createStudent();
// 1.2 Gson - Java object to JSON string
Gson gson = new GsonBuilder()
.setPrettyPrinting() // pretty print
.create();
// 1.3 pretty print to console
System.out.println("Gson - Java object to JSON string :- \n\n"
+ gson.toJson(student));
}
// 2. This method is used to create Student object
private static Student createStudent() {
// 2.1 create Student object
Student student = new Student();
// 2.2 set values for Student object
student.setRollNumber(28);
student.setName("Mani");
student.setPercentage(50.56);
// 2.3 return Student object
return student;
}
}
Output :
Gson - Java object to JSON string :-
{
"rollNumber": 28,
"name": "Mani",
"percentage": 50.56
}
6. JSON to Java Object conversion :
Using Gson library, we can convert JSON String to equivalent Java Object and vice-versa
6.1 Steps to convert JSON String to Java Object :
- Create Java/Maven project and add required Gson library to Build path
- Create POJO class for Student which we already created in the above step
- Create main Java class to convert JSON String to Java Object using Gson API
JsonStringToJavaObjectUsingGson.java
package net.bench.resources.convert.json.to.java;
import com.google.gson.Gson;
public class JsonStringToJavaObjectUsingGson {
// 1. main() method
public static void main(String[] args) {
// 1.1 original JSON string
String jsonString = "{\"rollNumber\":28,\"name\":\"Mani\",\"percentage\":50.56}";
// 1.2 create Gson object
Gson gson = new Gson();
// 1.3 Gson - JSON string to Java object
Student student = gson.fromJson(jsonString, Student.class);
// 1.4 print to console
System.out.println("Gson - JSON string to Java object :- \n\n"
+ student);
}
}
Output :
Gson - JSON string to Java object :-
Student [rollNumber=28, name=Mani, percentage=50.56]
6.2 Steps to convert JSON String to Java Object :
This example is same like previous one except that input JSON String is formatted
JsonStringInFormattedFormToJavaObjectUsingGson.java
package net.bench.resources.convert.json.to.java;
import com.google.gson.Gson;
public class JsonStringInFormattedFormToJavaObjectUsingGson {
// 1. main() method
public static void main(String[] args) {
// 1.1 original JSON string
String jsonString = "{" +
" \"rollNumber\" : 28," +
" \"name\" : \"Niyas\"," +
" \"percentage\" : 50.56" +
"}";
// 1.2 create Gson object
Gson gson = new Gson();
// 1.3 Gson - JSON string to Java object
Student student = gson.fromJson(jsonString, Student.class);
// 1.4 print to console
System.out.println("Gson - JSON string to Java object :- \n\n"
+ student);
}
}
Output :
Gson - JSON string to Java object :-
Student [rollNumber=28, name=Niyas, percentage=50.56]
Related Articles :
- Gson – Java Object to JSON conversion
- Jackson – Java Object to JSON conversion
- Java – How to convert an Object to YAML using ObjectMapper ?
- Java – How to convert YAML to an Object using ObjectMapper ?
- Java – How to convert YAML to JSON using ObjectMapper ?
- Java – How to convert JSON to YAML using ObjectMapper ?
- Java – How to convert XML to JSON using ObjectMapper ?
- Java – How to convert JSON to XML using ObjectMapper ?
- Java – How to convert XML to YAML using ObjectMapper ?
- Java – How to convert YAML to XML using ObjectMapper ?
- Java – How to pretty-print JSON using ObjectMapper ?
- Java – How to convert XML to JSON using JSONObject ?
- Java – How to convert JSON to XML using JSONObject ?
- Java – How to pretty-print JSON using JSONObject ?
References :
- https://www.json.org/json-en.html
- https://javadoc.io/doc/com.google.code.gson/gson/latest/index.html
- https://www.javadoc.io/doc/com.google.code.gson/gson/2.8.5/com/google/gson/Gson.html
- https://sites.google.com/site/gson/gson-user-guide
Happy Coding !!
Happy Learning !!