0
似乎这里建档的错误:https://github.com/google/gson/issues/513Gson正在重置JSON中不能返回的字段的值。解决方法?
麻烦的是我不知道的任何变通办法,我是相当新的GSON。我在我的POJO中有一个布尔字段,我自己设置了它,它不是来自JSON,我设置为true
,当对象由Gson解析时,它的设置返回到false
。不应该发生的行为。
这是我到目前为止已经试过:
Gson gson = new GsonBuilder()
.serializeNulls()
.setExclusionStrategies(new ExclusionStrategy() {
@Override
public boolean shouldSkipField(FieldAttributes f) {
return f.getName().equals("reviewed");
}
@Override
public boolean shouldSkipClass(Class<?> clazz) {
return false;
}
})
.create();
正如你可以看到我已经尝试跳过领域reviewed
,但它仍然被设置为false
。我也尝试在shouldSkipField
方法中添加断点,当它试图解析reviewed
时确实返回true
。所以我真的不明白,我可以把它记录下来就是我上面发布的错误。
有没有人有更好的解决方案?看来这个bug已经存在了一段时间了。
欣赏帮助。
编辑:
这里是如何看在我的POJO
private boolean reviewed;
//Getters and setters
public boolean isReviewed() {
return reviewed;
}
public void setReviewed(boolean reviewed) {
this.reviewed = reviewed;
}
你的“评论”栏目是怎样的?它是一个原始的'boolean'还是一个包装器'Boolean'?它是否有任何初始化程序? –
@LyubomyrShaydariv更新了我的问题,将布尔设置为基元,但没有解决它。 –
这是因为原始字段总是获取默认值。 – null