Gson 简明教程

Gson - Class

Gson 是 Google Gson 库的主要操作员类。它提供将 Java 对象转换成匹配 JSON 构造的过程,反之亦然。使用 GsonBuilder 首先构建 Gson,然后使用 toJson(Object) 或 fromJson(String, Class) 方法来读/写 JSON 构造。

Class Declaration

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

public final class Gson
   extends Object

Constructors

Sr.No

Constructor & Description

1

Gson() 使用默认配置构建 Gson 对象。

Class Methods

Sr.No

Method & Description

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

Methods inherited

此类从以下类继承方法 −

  1. java.lang.Object

Example

在任何您选择的编辑器中创建以下 Java 程序,并将它保存在,比如,C:/> GSON_WORKSPACE

File − 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+ " ]";
   }
}

Verify the result

使用以下 javac 编译器编译类:

C:\GSON_WORKSPACE>javac GsonTester.java

现在运行 GsonTester 来查看结果 −

C:\GSON_WORKSPACE>java GsonTester

验证输出

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