Gson類


Gson是Google Gson庫的主要操作類。 它提供了將Java物件轉換為匹配的JSON結構的功能,反之亦然。 Gson首先使用GsonBuilder構建,然後使用toJson(Object)fromJson(String,Class)方法讀取/寫入JSON構造。

類宣告

以下是com.google.gson.Gson類的宣告 -

public final class Gson 
   extends Object

建構函式

編號 建構函式 說明
1 Gson() 用預設組態構造一個Gson物件。

類方法

編號 方法 描述
1 <T> T fromJson(JsonElement json, Class<T> classOfT) 此方法將從指定分析樹讀取的Json反序列化為指定型別的物件。
2 <T> T fromJson(JsonElement json, Type typeOfT) 此方法將從指定分析樹讀取的Json反序列化為指定型別的物件。
3 <T> T fromJson(JsonReader reader, Type typeOfT) reader中讀取下一個JSON值並將其轉換為typeOfT型別的物件。
4 <T> T fromJson(Reader json, Class<T> classOfT) 此方法將從指定Reader讀取的Json反序列化為指定類的物件。
5 <T> T fromJson(Reader json, Type typeOfT) 此方法將從指定reader讀取的Json反序列化為指定型別的物件。
6 <T> T fromJson(String json, Class<T> classOfT) 此方法將指定的Json反序列化為指定類的物件。
7 <T> T fromJson(String json, Type typeOfT) 此方法將指定的Json反序列化為指定型別的物件。
8 <T> TypeAdapter<T> getAdapter(Class<T> type) 返回type的型別介面卡。
9 <T> TypeAdapter<T> getAdapter(TypeToken<T> type) 返回type的型別介面卡。
10 <T> TypeAdapter<T> getDelegateAdapter(TypeAdapterFactory skipPast, TypeToken<T> type) 此方法用於獲取指定型別的備用型別介面卡。
11 String toJson(JsonElement jsonElement) JsonElements樹轉換為其等效的JSON表示形式。
12 void toJson(JsonElement jsonElement, Appendable writer) JsonElements樹寫出等價的JSON。
13 void toJson(JsonElement jsonElement, JsonWriter writer) jsonElement的JSON寫入writer
14 String toJson(Object src) 此方法將指定的物件序列化為其等效的Json表示形式。
15 void toJson(Object src, Appendable writer) 此方法將指定的物件序列化為其等效的Json表示形式。
16 String toJson(Object src, Type typeOfSrc) 此方法將指定物件(包括泛型型別的物件)序列化為其等效的Json表示形式。
17 void toJson(Object src, Type typeOfSrc, Appendable writer) 此方法將指定物件(包括泛型型別的物件)序列化為其等效的Json表示形式。
18 void toJson(Object src, Type typeOfSrc, JsonWriter writer) typeOfSrc型別的src的JSON表示寫入writer
19 JsonElement toJsonTree(Object src) 此方法將指定物件序列化為與JsonElements樹相同的表示形式。
20 JsonElement toJsonTree(Object src, Type typeOfSrc) 此方法將指定物件(包括泛型型別的物件)序列化為與JsonElements樹相同的表示形式。
21 String toString() 轉化為字串的形式。

繼承的方法

這個類繼承了以下類的方法 -

  • java.lang.Object

範例

檔案:GsonTester.java -

import com.google.gson.Gson; 
import com.google.gson.GsonBuilder;  

public class GsonTester { 
   public static void main(String[] args) { 
      String jsonString = "{\"name\":\"Maxsu\", \"age\":24}"; 

      GsonBuilder builder = new GsonBuilder(); 
      builder.setPrettyPrinting(); 

      Gson gson = builder.create(); 
      Student student = gson.fromJson(jsonString, Student.class); 
      System.out.println(student);    

      jsonString = gson.toJson(student); 
      System.out.println(jsonString);  
   } 
}  
class Student { 
   private String name; 
   private int age; 
   public Student(){} 

   public String getName() { 
      return name; 
   } 
   public void setName(String name) { 
      this.name = name; 
   } 
   public int getAge() { 
      return age;
   } 
   public void setAge(int age) { 
      this.age = age; 
   } 
   public String toString() { 
      return "Student [ name: "+name+", age: "+ age+ " ]"; 
   }  
}

執行上面範例程式碼,得到以下結果 -

{ 
   "name" : "Maxsu", 
   "age" : 24 
}