Computer >> Máy Tính >  >> Lập trình >> Java

Làm cách nào để phân tích cú pháp JSON thành Mô hình cây Gson trong Java?


Thư viện Gson có thể được sử dụng để phân tích cú pháp chuỗi JSON thành Chế độ cây l. Chúng tôi có thể sử dụng JsonParser để phân tích cú pháp chuỗi JSON thành Mô hình cây thuộc loại JsonElement . getAsJsonObject () phương pháp của JsonElement có thể được sử dụng để lấy phần tử là JsonObject getAsJsonArray () phương pháp của JsonElement có thể được sử dụng để lấy phần tử là JsonArray .

Cú pháp

public JsonObject getAsJsonObject()
public JsonArray getAsJsonArray()

Ví dụ

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 +
             '}';
   }
}

Đầu ra

Student Info:
Name is: "Adithya"
Age is: 20
Year of Passout: 2005
Subjects:["MATHEMATICS","PHYSICS","CHEMISTRY"]