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:

More Posts related to Java,
- Add two numbers using Java Generics
- Convert Java List to Json String using Jackson
- Convert Java Object to JSON using Jackson Library
- Java SE JDBC: Insert with PreparedStatement Example
- [Program] How to read three different values using Scanner in Java
- Java JDBC Batch Update Example with PreparedStatement
- Java Stream flatmap() Examples
- Save Java Object as JSON file using Jackson Library
- Java get day of the week as an int using DayOfWeek
- Create Nested Directories using Java Code
- Java JDBC Delete a Record in Database Table using PreparedStatement
- List of jars required for Struts2 project
- Convert Java Object to XML using Jackson Library
- Struts2 : java.lang.ClassNotFoundException: org.apache.commons.fileupload.RequestContext
- Java JDBC Get Id of the Inserted Record with AutoIncrement
- How to list all tables using Java JDBC
- Java Jackson ObjectMapper Class with Examples
- Fix: Maven - Failed to execute goal - Compilation failure - Source/Target option 5 is no longer supported. Use 7 or later
- Eclipse : The type java.lang.CharSequence cannot be resolved. Indirectly referenced from required .class files
- Formatting Double in Java [Examples]
- How to run Java Unit Test cases with Apache Maven?
- [fix] NullPointerException Cannot Invoke findById because Repository is null - Java Spring
- [Fix] java: integer number too large compilation error
- [Java] Read a File with UTF-8 Encoding
- How to detect Operating System using Java code
More Posts:
- Fix SharePoint PowerShell error - The term Get-SPweb is not recognized as the name of a cmdlet function script file or operable program - SharePoint
- How to turn off Stage Manager - macOS Ventura - MacOS
- How to Setup maven on Mac (macOS) - Mac-OS-X
- SharePoint installation error - Setup is unable to proceed due to the following error This product requires Microsoft .Net Framework 4.5 - SharePoint
- Android Error Unexpected cast to Button: layout tag was FrameLayout - Android
- Find your macOS version - MacOS
- Safari Full Screen Shortcut using Keyboard [macOS] - MacOS
- Horizontally Center Align