我正在尝试使用GSON 2.2.4反序列化这个复杂的Json
{
"AUSMASS": {
"KAPITEL": [
{
"KAP": "102",
"KAG": "",
.
.
.
}
],
"POSITION_TEXT": [
{
"MANDT": "500",
"ID": "00181171",
.
.
.
}
],
"POSITION": [
{
"MANDT": "500",
"ID": "00180699",
.
.
.
}
]
"KONDITION": [
{
"MANDT": "500",
"ID": "00180699",
.
.
.
}
]
}
}
我的POJO课程KAPITEL,POSITIONTEXT,POSITION和KONDITION
public class AusmassInfo {
@Expose
private ArrayList<KAPITEL> KAPITEL = new ArrayList<>();
@SerializedName("POSITION_TEXT")
@Expose
private ArrayList<POSITIONTEXT> POSITIONTEXT = new ArrayList<>();
@Expose
private ArrayList<POSITION> POSITION = new ArrayList<>();
@Expose
private ArrayList<KONDITION> KONDITION = new ArrayList<>();
...Getters and Setters
}
这是主要的POJO,包括AUSMASS ......
public class Example {
@Expose
private AusmassInfo AUSMASS;
/**
* @return The AUSMASS
*/
public AusmassInfo getAUSMASS() {
return AUSMASS;
}
/**
* @param AUSMASS The AUSMASS
*/
public void setAUSMASS(AusmassInfo AUSMASS) {
this.AUSMASS = AUSMASS;
}
}
我试图以这种方式反序列化
Gson gson = new Gson();
Type type = new TypeToken<ArrayList<Example>>() {
}.getType();
bigObject = gson.fromJson(reader, type);
但我得到了空物。
任何人都可以帮我吗? 提前致谢。
答案 0 :(得分:0)
默认情况下,Gson无法序列化泛型列表。但是有一个解决方法,在堆栈溢出时搜索泛型gson列表,我记得有人发布了一种让它工作的方法。
另一种方法是迭代json数组并序列化每个项目。
答案 1 :(得分:0)
指定的json是Object而不是Array。
这样就可以使用下面的代码片段
Gson gson = new Gson();
bigObject = gson.fromJson(reader, Example.class);