How to parse a JSON to Gson Tree Model in Java?

JavaJSONObject Oriented ProgrammingProgramming

The Gson library can be used to parse a JSON String into a Tree Model. We can use the JsonParser to parse the JSON string into a Tree Model of type JsonElement. The getAsJsonObject() method of JsonElement can be used to get the element as JsonObject and getAsJsonArray() method of JsonElement can be used to get the element as JsonArray.

Syntax

public JsonObject getAsJsonObject()
public JsonArray getAsJsonArray()

Example

import java.util.List;
import com.google.gson.*;
public class JsonTreeModelTest {
   public static void main(String args[]){
      String jsonStr = "{\"name\":\"Adithya\",\"age\":20,\"year of passout\":2005,\"subjects\": [\"MATHEMATICS\",\"PHYSICS\",\"CHEMISTRY\"]}";
      JsonParser jsonParser = new JsonParser();
      JsonElement jsonElement = jsonParser.parse(jsonStr);
      if(jsonElement.isJsonObject()) {
         JsonObject studentObj = jsonElement.getAsJsonObject();
         System.out.println("Student Info:");
         System.out.println("Name is: " + studentObj.get("name"));
         System.out.println("Age is: " + studentObj.get("age"));
         System.out.println("Year of Passout: " + studentObj.get("year of passout"));
         JsonArray jsonArray = studentObj.getAsJsonArray("subjects");
         System.out.println("Subjects:" + jsonArray);
      }
   }
}
// Student class
class Student {
   private String name;
   private int age;
   private int passoutYear;
   private List subjects;
   public Student(String name, int age, int passoutYear, List subjects) {
      this.name = name;
      this.age = age;
      this.passoutYear = passoutYear;
      this.subjects = subjects;
   }
   @Override
   public String toString() {
      return "Student{" +
             "name='" + name + '\'' +
             ", age='" + age + '\'' +
             ", year of passout=" + passoutYear +
             ", subjects=" + subjects +
             '}';
   }
}

Output

Student Info:
Name is: "Adithya"
Age is: 20
Year of Passout: 2005
Subjects:["MATHEMATICS","PHYSICS","CHEMISTRY"]
raja
Published on 30-Sep-2019 11:35:23
Advertisements