Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

จะแยก JSON เป็น Gson Tree Model ใน Java ได้อย่างไร


ห้องสมุด Gson สามารถใช้เพื่อ แยก JSON String เป็น Tree Mode ล. เราสามารถใช้ JsonParser เพื่อแยกวิเคราะห์ สตริง JSON เป็นแบบจำลองต้นไม้ ประเภท JsonElement . getAsJsonObject() วิธีการของ JsonElement สามารถใช้เพื่อรับองค์ประกอบเป็น JsonObject และ getAsJsonArray() วิธีการของ JsonElement สามารถใช้เพื่อรับองค์ประกอบเป็น JsonArray .

ไวยากรณ์

public JsonObject getAsJsonObject()
public JsonArray getAsJsonArray()

ตัวอย่าง

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

ผลลัพธ์

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