Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GSON列表_Java_Json_Gson - Fatal编程技术网

Java GSON列表

Java GSON列表,java,json,gson,Java,Json,Gson,如何使用Gson反序列化列表列表 例如,给定以下JSON字符串: { vars: [ [ 1, 2, 3 ], [ 4, 5 ] ] } 我可以创建以下两个POJO,尝试对其进行反序列化: class ThisDoesNotWork { public List<List<Integer>> vars; } 如果我将调试器附加到gson.fromJson(jsonStr,ThisWorks.class)的输出,我可以看到反序列化的vars对象

如何使用Gson反序列化列表列表

例如,给定以下JSON字符串:

{
  vars: [
    [ 1, 2, 3 ],
    [ 4, 5 ]
  ]
}
我可以创建以下两个POJO,尝试对其进行反序列化:

class ThisDoesNotWork {
  public List<List<Integer>> vars;
}
如果我将调试器附加到
gson.fromJson(jsonStr,ThisWorks.class)的输出
,我可以看到反序列化的
vars
对象包含:

vars = {java.util.ArrayList}, size = 2
|-- [0] = {java.util.ArrayList}, size = 3
     |-- [0] = {java.lang.Integer}, value = 1
     |-- [1] = {java.lang.Integer}, value = 2
     |-- [2] = {java.lang.Integer}, value = 3
|-- [1] = {java.util.ArrayList}, size = 2
     |-- [0] = {java.lang.Integer}, value = 4
     |-- [1] = {java.lang.Integer}, value = 5

所以我的问题是,如何使用Gson正确地反序列化列表列表

这是我的一个简单错误

class ThisDoesWorkAfterAll {
  public List<List<Integer>> vars;
}
class thisdoesworka毕竟{
公共列表变量;
}
这是反序列化json的正确方法。在我的数据中,我只是增加了一个级别的列表。如果遇到相同的问题,请检查GSON是否告诉您它需要“您的类型”(例如Integer),但看到了START_数组([)


…令人尴尬…

请注意,这不是列表列表,而是列表的映射。是的,这是(或多或少)我代码中的问题。谢谢:)如果您真正想从中得到的只是列表,那么为其创建POJO有点傻。这一点很好。不过,这只是为了创建一个最小的示例,我的POJO有更多的属性。
class ThisDoesWorkAfterAll {
  public List<List<Integer>> vars;
}