我有一个来自服务器的JSON字符串,我无法控制它 我通过编程使用jsonschema2pojo库来生成Java类 我正在使用GSON将JSON反序列化为我的Java对象。
以下是JSON的示例。
currentWidth
那" 50"子类实际上只是18个类中的1个,它们同样被命名为数字 当jsonschema2pojo生成Java类时,可以理解的是在下划线之前创建类名(因此,_50)。
jsonschema2pojo使用以下成员生成DescriptionById类:
"description_by_id": {
"50": {
"field1": "value1",
"field2": "value2",
"field3": "value3"
}
}
getter看起来像这样(setter类似):
@JsonProperty("50")
private com.me.models._50 _50;
我正在使用GSON:
@JsonProperty("50")
public com.me.models._50 get50() {
return _50;
}
但是在完成GSON后,_50对象和其他类似的对象都是null,我已经检查过JSON中的相应位置实际上是用实际值填充的。
我能做些什么才能让它正常工作而不需要手动解决这个问题?
答案 0 :(得分:1)
那" 50"子类实际上只是18个类中的一个,它们同样被命名为数字
当你得到一个你没有Java类的额外ID时会发生什么? Gson不知道该怎么办......
不要上课。使用地图。
制作这个"内心" POJO
public class Inner {
private String field1;
private String field2;
private String field3;
}
外部POJO
public class Outer {
private TreeMap<String, Inner> description_by_id;
}
然后你会someOuter.getDescriptionById("50").getField1()
(根据需要添加回Gson属性)