【发布时间】:2011-09-18 04:13:03
【问题描述】:
我在使用 GSon 进行 json 反序列化时遇到了一些困难,希望有人能帮助我。
我想反序列化下面的json sn-p:
{
"fieldA": "valueA",
"myCollection": {
"AnotherClass": [
{
"objectAfieldA": "valueB",
"objectAfieldB": "valueC"
},
{
"objectAfieldA": "valueD",
"objectAfieldB": "valueE"
}
]
}
}
对应的整体类有以下字段:
...
String fieldA;
List<AnotherClass> = new ArrayList<AnotherClass>();
....
现在,我的问题是,当我使用 fromJson(jsonSample, resultContainer.class) 反序列化时,没有 List<T> 元素,一切都很好,但是当我包含包含的列表时,我得到了 NullPointerException。我已经阅读过如何处理泛型类型的集合以及TypeToken 的使用,但是当我的集合是另一个类的一部分时,我无法应用这些知识……
我真的很感激任何帮助来解决这个问题。
【问题讨论】:
-
如果您从工作中获取代码示例,那么它将无法编译,因为 List 字段没有名称。如果这不是问题,请查看http://stackoverflow.com/questions/5554217/google-gson-deserialize-listclass-object-generic-type 和http://stackoverflow.com/questions/2496494/library-to-encode-decode-from-json-to-java-util-map。
-
你说得对,我错过了一个名称字段。并且问题在后面的回答中得到解决。