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 
}