如何使用 Google 的 Gson API 正确反序列化 JSON?
简而言之,这是我想在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) ;
每当我尝试访问可解析对象(例如,通过a)时,我都会得到一个。但是,Gson 确实创建了我指定的类的对象,并且不会引发任何后续错误。NullPointerException
ListIterator
我知道以前已经这样做过。那么,我错过了什么呢?
断续器