Gson - 类

Gson 是 Google Gson 库的主要 Actor 类。 它提供了将 Java 对象转换为匹配的 JSON 结构的功能,反之亦然。 Gson 首先使用 GsonBuilder 构造,然后使用 toJson(Object) 或 fromJson(String, Class) 方法读取/写入 JSON 构造。

类声明

以下是 com.google.gson.Gson 类的声明 −

public final class Gson 
   extends Object 

Constructors

Sr.No 构造函数 & 描述
1

Gson()

使用默认配置构造一个 Gson 对象。

类方法

Sr.No 方法及描述
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)

从读取器读取下一个 JSON 值并将其转换为 typeOfT 类型的对象。

4

<T> T fromJson(Reader json, Class<T> classOfT)

该方法将从指定读取器读取的 Json 反序列化为指定类的对象。

5

<T> T fromJson(Reader json, Type typeOfT)

该方法将从指定读取器读取的 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)

返回类型的类型适配器。

9

<T> TypeAdapter<T> getAdapter(TypeToken<T> 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

示例

使用您选择的任何编辑器创建以下 Java 程序,并将其保存在 C:/> GSON_WORKSPACE

文件 − GsonTester.java

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

public class GsonTester { 
   public static void main(String[] args) { 
      String jsonString = "{\"name\":\"Mahesh\", \"age\":21}"; 
      
      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+ " ]"; 
   }  
}

验证结果

使用javac编译器编译类,如下所示 −

C:\GSON_WORKSPACE>javac GsonTester.java 

现在运行 GsonTester 查看结果 −

C:\GSON_WORKSPACE>java GsonTester

验证输出

Student [ name: Mahesh, age: 21 ] 
{ 
   "name" : "Mahesh", 
   "age" : 21 
}