In order to convert a Java JSON String to a Java Object and vice-versa, we can make use of the Google Gson dependency,
Gson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object.
Add Gson dependency in Maven POM.xml
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.3.1</version>
</dependency>
Add Gson dependency in Gradle build.gradle
// https://mvnrepository.com/artifact/com.google.code.gson/gson
implementation group: 'com.google.code.gson', name: 'gson', version: '2.3.1'
Example: Java JSON String to a Java Object
Student.json[
{
"studentId": 1,
"studentName": "Mike",
"studentAddress": "Paris",
"studentAge": 19,
"studentMarks": {
"English": 87,
"Chemistry": 72,
"Math": 75,
"Physics": 67
}
},
{
"studentId": 2,
"studentName": "Alex",
"studentAddress": "London",
"studentAge": 18,
"studentMarks": {
"English": 71,
"Chemistry": 98,
"Math": 89,
"Physics": 76
}
}
]
Students.java
import java.util.HashMap;
public class Student {
public Student(int studentId, String studentName, String studentAddress, int studentAge, HashMap<String, Integer> studentMarks) {
this.studentId = studentId;
this.studentName = studentName;
this.studentAddress = studentAddress;
this.studentAge = studentAge;
this.studentMarks = studentMarks;
}
private int studentId;
private String studentName;
private String studentAddress;
private int studentAge;
private HashMap<String,Integer> studentMarks;
public int getStudentId() {
return studentId;
}
public void setStudentId(int studentId) {
this.studentId = studentId;
}
public String getStudentName() {
return studentName;
}
public void setStudentName(String studentName) {
this.studentName = studentName;
}
public String getStudentAddress() {
return studentAddress;
}
public void setStudentAddress(String studentAddress) {
this.studentAddress = studentAddress;
}
public int getStudentAge() {
return studentAge;
}
public void setStudentAge(int studentAge) {
this.studentAge = studentAge;
}
public HashMap<String, Integer> getStudentMarks() {
return studentMarks;
}
public void setStudentMarks(HashMap<String, Integer> studentMarks) {
this.studentMarks = studentMarks;
}
}
JsonToGsonExample.java
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.util.ArrayList;
public class JsonToGsonExample {
public static void main(String[] args) {
String jsonString = "{\n" +
" \"studentId\": 1,\n" +
" \"studentName\": \"Mike\",\n" +
" \"studentAddress\": \"Paris\",\n" +
" \"studentAge\": 19,\n" +
" \"studentMarks\": {\n" +
" \"English\": 87,\n" +
" \"Chemistry\": 72,\n" +
" \"Math\": 75,\n" +
" \"Physics\": 67\n" +
" }\n" +
"}";
String jsonStringList ="[\n" +
" {\n" +
" \"studentId\": 1,\n" +
" \"studentName\": \"Mike\",\n" +
" \"studentAddress\": \"Paris\",\n" +
" \"studentAge\": 19,\n" +
" \"studentMarks\": {\n" +
" \"English\": 87,\n" +
" \"Chemistry\": 72,\n" +
" \"Math\": 75,\n" +
" \"Physics\": 67\n" +
" }\n" +
" },\n" +
" {\n" +
" \"studentId\": 2,\n" +
" \"studentName\": \"Alex\",\n" +
" \"studentAddress\": \"London\",\n" +
" \"studentAge\": 18,\n" +
" \"studentMarks\": {\n" +
" \"English\": 71,\n" +
" \"Chemistry\": 98,\n" +
" \"Math\": 89,\n" +
" \"Physics\": 76\n" +
" }\n" +
" }\n" +
"]";
Gson gson = new Gson();
//Example with just one Json Object
Student student = gson.fromJson(jsonString,Student.class);
System.out.println(student.getStudentName());
System.out.println(student.getStudentAddress());
//Example with a Student List
ArrayList<Student> studentsList = new ArrayList<>();
studentsList = gson.fromJson(jsonStringList, new TypeToken<ArrayList<Student>>(){}.getType());
System.out.println(studentsList.get(0).getStudentName());
System.out.println(studentsList.get(1).getStudentName());
}
}
Output:
Mike
Paris
Mike
Alex
Example: Gson Java Object to JSON String
GsonToJsonExample.javaimport com.google.gson.Gson;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class GsonToJsonExample {
public static void main(String[] args) {
HashMap<String,Integer> mikeMarks = new HashMap<>();
mikeMarks.put("English",87);
mikeMarks.put("Math",75);
mikeMarks.put("Physics",67);
mikeMarks.put("Chemistry",72);
HashMap<String,Integer> alexMarks = new HashMap<>();
alexMarks.put("English",71);
alexMarks.put("Math",89);
alexMarks.put("Physics",76);
alexMarks.put("Chemistry",98);
Student studentMike = new Student(1,"Mike","Paris",19,mikeMarks);
Student studentAlex = new Student(2,"Alex","London",18,alexMarks);
List<Student> studentList = new ArrayList<>();
studentList.add(studentMike);
studentList.add(studentAlex);
Gson gson = new Gson();
System.out.println(gson.toJson(studentList));
}
}
Output:

- Create a Zip file using Java Code programmatically
- Eclipse : A java Runtime Environment (JRE) or Java Development kit (JDK) must be available
- How to Sort a LinkedList in Java
- Loading class com.mysql.jdbc.Driver. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver
- How to declare and initialize Array in Java Programming
- [Fix] java: integer number too large compilation error
- Java JDBC Connection with MySQL Driver in VS Code + Troubleshooting
- Reading .xls and .xlsx Excel file using Apache POI Java Library
- IntelliJ: Error: Could not find or load main class, java.lang.ClassNotFoundException
- How to get Client IP address using Java Code Example
- Truncate table using Java JDBC Example
- Struts 2 : There is no Action mapped for namespace [/] and action name [form] associated with context path [/proj]
- How to get file path in Idea IntelliJ IDE
- Java Generics explained with simple definition and examples
- Java SE 8 Update 301 available with various bug fixes and security improvements
- Java: Collect Stream as ArrayList or LinkedList
- Java JDBC Connection with PostgreSQL Driver Example
- How to check if Java main thread is alive
- How to fix Java nio NoSuchFileException wile reading a file
- Java 8+ get Day of the Week Examples with LocalDateTime, DateTime, ZonalDateTime and Instant classes
- Ways to Convert Integer or int to Long in Java
- [Java] How to throws Exception using Functional Interface and Lambda code
- [Fix] Spring Boot: mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
- Java: The value of the local variable string is not used
- Java JDBC: Insert Java 8 LocalDate and Time using PreparedStatement
- How to press shortcut CTRL + ALT + DEL on Windows Remote Desktop - HowTos
- How to remove app from Dock when closed [macOS Big Sur] - MacOS
- Get the Current Date using LocalDate in Java - Java
- Eclipse : A java Runtime Environment (JRE) or Java Development kit (JDK) must be available - Java
- Difference between using Scanner Class and String args for user input in Java - Java
- How to delete a dir or folder using Python code - Python
- Android: programmatically turn Bluetooth on or off using Java code - Android
- How to disable button in Bootstrap - Bootstrap