如何反序列化JSON数组以列出Java中的通用类型?

Gson库提供了一个名为com.google.gson.reflect.TypeToken的类,用于通过创建Gson TypeToken类并传递类类型来存储通用类型。 使用这种类型,Gson可以知道在通用类中传递的类。

语法

public class TypeToken<T> extends Object

在下面的示例中,我们可以将JSON数组反序列化为列表的通用类型

示例

import java.lang.reflect.Type;
import java.util.*;
import com.google.gson.*;
import com.google.gson.reflect.*;
public class JSONArrayToListTest {
   public static void main(String args[]) throws Exception {
      String jsonStr = "[{\"name\":\"Adithya\", \"course\":\"Java\"}," + "{\"name\":\"Ravi\", \"course\":\"Python\"}]";
      Type listType = new TypeToken<ArrayList<Student>>() {}.getType();
      List<Student> students = new Gson().fromJson(jsonStr, listType);
      System.out.println(students);
   }
}
//学生班
class Student {
   String name;
   String course;
   @Override
    public String toString() {
      return "Student [name=" + name + ", course=" + course + "]";
   }
}

输出结果

[Student [name=Adithya, course=Java], Student [name=Ravi, course=Python]]