【发布时间】:2011-02-21 07:18:15
【问题描述】:
简而言之,这是我想用JAVA解析的JSON对象的草图:
{
object1: {
item1: //[String | Array | Object] ,
item2: // ...
//<> more items
object2: { /* .. */ }
//<> more objects
}
这些是我为解析而创建的 POJO (为简洁起见,我将省略 import 语句):
(1)完整JSON对象的表示
public class JObjectContainer {
private List<JObject> jObjects ;
public JObjectContainer() { }
//get & set methods
}
(2)嵌套对象的表示:
public class JObject {
private String id ;
private List<JNode> jObjects ;
public JObject() { }
//get & set methods
}
(3)物品的表示:
public class JNode {
private JsonElement item1 ;
private JsonElement item2 ;
//<> more item fields
public JNode() { }
//get & set methods
}
现在,创建一个 Gson 实例(FileReader 用于导入 jsonFile),
Gson gson = new Gson() ;
JObjectContainer joc = gson.fromJson(jsonFile,JObjectContainer.class) ;
每当我尝试访问可解析对象时(例如通过ListIterator),我都会得到一个NullPointerException。然而,Gson 确实创建了一个我指定的类的对象,并且没有抛出任何后续错误。
我知道以前有人这样做过。那么,我错过了什么?
TIA
【问题讨论】:
标签: java json api gson serialization