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
}