如何在 Java 中将 JSON 解析为 Gson 树模型?

javajsonobject oriented programmingprogramming

 Gson 库可用于将 JSON 字符串解析为树模型。我们可以使用 JsonParser JSON 字符串解析为 JsonElement 类型的树模型JsonElement getAsJsonObject() 方法可用于将元素作为 JsonObject 获取,JsonElement getAsJsonArray()  方法可用于将元素作为 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 classclass 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"]

相关文章