Gson class

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

1. 类声明

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

public final class Gson
extends Object

2. 构造函数

S.No 构造函数和描述
1 Gson() 使用默认配置构造Gson对象。

3. 分类方法

S.No 方法和描述
1 T fromJson(JsonElement json, Class classOfT) 此方法将Json读取从指定的解析树反序列化为指定类型的对象。
2 T fromJson(JsonElement json, Type typeOfT) 此方法将Json读取从指定的解析树反序列化为指定类型的对象。
3 T fromJson(JsonReader reader, Type typeOfT) 从reader读取下一个JSON值并将其转换为typeOfT类型的对象。
4 T fromJson(Reader json, Class classOfT) 此方法将指定读取器的Json读取反序列化为指定类的对象。
5 T fromJson(Reader json, Type typeOfT) 此方法将指定读取器的Json读取反序列化为指定类型的对象。
6 T fromJson(String json, Class classOfT) 此方法将指定的Json反序列化为指定类的对象。
7 T fromJson(String json, Type typeOfT) 此方法将指定的Json反序列化为指定类型的对象。
8 TypeAdapter getAdapter(Class type) 返回类型的类型适配器。
9 TypeAdapter getAdapter(TypeToken type) 返回类型的类型适配器。
10 TypeAdapter getDelegateAdapter(TypeAdapterFactory skipPast, TypeToken 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()

4. 方法继承

该类继承以下类中的方法:

  • java.lang.Object继承

1) 范例

使用您选择的任何编辑器创建以下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+ " ]";
   }  
}

2) 验证结果

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

C:\GSON_WORKSPACE>javac GsonTester.java

现在运行GsonTester查看结果:

C:\GSON_WORKSPACE>java GsonTester

验证输出

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

下一章:Gson 对象序列化

让我们将 Java 对象序列化为Json文件,然后读取该 Json 文件以获取该对象。在这个例子中,我们创建了一个 Student 类。我们将创建一个student.json 文件,该文件将具有 Student 对象的 ...