首页
学习
活动
专区
圈层
工具
发布

GSON列表
EN

Stack Overflow用户
提问于 2014-03-12 11:25:14
回答 1查看 2K关注 0票数 2

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

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

代码语言:javascript
复制
{
  vars: [
    [ 1, 2, 3 ],
    [ 4, 5 ]
  ]
}

我可以创建以下两个POJO,尝试并反序列化它:

代码语言:javascript
复制
class ThisDoesNotWork {
  public List<List<Integer>> vars;
}

运行gson.fromJson(jsonStr, ThisDoesNotWork.class);会引发一个com.google.gson.JsonSyntaxException

但是,下面的工作(尽管它不是很有用):

代码语言:javascript
复制
class ThisWorks {
  public List<Object> vars;
}

如果将调试器附加到gson.fromJson(jsonStr, ThisWorks.class);的输出,则可以看到反序列化的vars对象包含:

代码语言:javascript
复制
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正确地反序列化列表列表?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-12 11:37:58

这对我来说是个简单的错误。

代码语言:javascript
复制
class ThisDoesWorkAfterAll {
  public List<List<Integer>> vars;
}

这个反序列化json的正确方法。在我的数据中,我只是有一个额外的列表。如果遇到同样的问题,请检查GSON是否告诉您它期望"Your“(例如整数),但是看到了一个START_ARRAY ([)。

...embarrasing...

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22350015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档