如何反序列化JSON数组以列出Java中的通用类型?
Gson库提供了一个名为com.google.gson.reflect.TypeToken的类,用于通过创建GsonTypeToken类并传递类类型来存储通用类型。使用这种类型,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]]