Convert JSON String to Java GSON Object Example


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.java
import 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&lt;String,Integer&gt; mikeMarks = new HashMap&lt;&gt;();
        mikeMarks.put("English",87);
        mikeMarks.put("Math",75);
        mikeMarks.put("Physics",67);
        mikeMarks.put("Chemistry",72);

        HashMap&lt;String,Integer&gt; alexMarks = new HashMap&lt;&gt;();
        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&lt;Student&gt; studentList = new ArrayList&lt;&gt;();
        studentList.add(studentMike);
        studentList.add(studentAlex);

        Gson gson = new Gson();
        System.out.println(gson.toJson(studentList));
    }
}
Output:
Gson To JSON String
Advertisements
Try Out Code2care Dev Tools:

Advertisements

Advertisements
Code2care is an initiative to publish and share varied knowledge in programming and technical areas gathered during day-to-day learnings and development activities.

Students and software developers can leverage this portal to find solutions to their various queries without re-inventing the wheel by referring to our easy to understand posts. Technical posts might include learnings, tutorials, trouble-shooting steps, video tutorials, code snippets, how-to, blogs, articles, etc.

🎉 We are celebrating the 10th years of Code2care! Thank you for all your support!

We strongly support Gender Equality & Diversity.