How to serialize and de-serialize generic types using the Gson library in Java?


If a Java class is a generic type and we are using it with the Gson library for JSON serialization and deserialization. The Gson library provides a class called com.google.gson.reflect.TypeToken to store generic types by creating a Gson TypeToken class and pass the class type. Using this type, Gson can able to know the class passed in the generic class.

Syntax

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

Example

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

Output

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

raja
raja

e

Updated on: 04-Jul-2020

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements