Computer >> Máy Tính >  >> Lập trình >> Java

Làm cách nào để tuần tự hóa và hủy tuần tự hóa các kiểu chung bằng cách sử dụng thư viện Gson trong Java?


Nếu một lớp Java là một kiểu chung và chúng tôi đang sử dụng nó với thư viện Gson cho JSON tuần tự hóa deserialization . Thư viện Gson cung cấp một lớp có tên com.google.gson.reflect.TypeToken để lưu trữ các loại chung bằng cách tạo Gson TypeToken lớp và vượt qua loại lớp. Sử dụng kiểu này, Gson có thể biết lớp được truyền trong lớp chung.

Cú pháp

public class TypeToken<T> extends java.lang.Object

Ví dụ

import java.lang.reflect.Type;
import java.util.*;
import com.google.gson.*;
import com.google.gson.reflect.*;
public class GenericTypesJSONTest {
   public static void main(String[] args) {
      Gson gson = new GsonBuilder().setPrettyPrinting().create();
      List<String> list = Arrays.asList("INDIA", "AUSTRALIA", "ENGLAND", "SOUTH AFRICA");
      String jsonStr = gson.toJson(list);
      System.out.println(jsonStr);
      Type listType = new TypeToken<List<String>>() {}.getType();
      list = gson.fromJson(jsonStr, listType);
      System.out.println(list);
   }
}

Đầu ra

[
   "INDIA",
   "AUSTRALIA",
   "ENGLAND",
   "SOUTH AFRICA"
]
[INDIA, AUSTRALIA, ENGLAND, SOUTH AFRICA]