Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

จะทำให้เป็นอันดับและยกเลิกการซีเรียลไลซ์ประเภททั่วไปโดยใช้ไลบรารี Gson ใน Java ได้อย่างไร


หากคลาส Java เป็นประเภททั่วไป และเรากำลังใช้กับ ไลบรารี Gson สำหรับ JSON การทำให้เป็นอนุกรม และ ดีซีเรียลไลเซชัน . ไลบรารี Gson มีคลาสชื่อ com.google.gson.reflect.TypeToken เพื่อจัดเก็บประเภททั่วไปโดยการสร้าง Gson TypeToken คลาสและผ่านประเภทคลาส เมื่อใช้ประเภทนี้ Gson สามารถทราบคลาสที่ส่งผ่านในคลาสทั่วไปได้

ไวยากรณ์

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

ตัวอย่าง

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);
   }
}

ผลลัพธ์

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