我需要gson库的帮助,基本上我必须反序列化一个这样定义的包装类:
static class WrapperClass {
public int value;
private final String otherData;
public WrapperClass(String otherData) {
this.otherData = otherData;
}
}
我必须参加的课程" jsonize"有这样的字段:
private final WrapperClass wrappedData = new WrapperClass("other data");
包装类的序列化非常简单:
@Override
public JsonElement serialize(WrapperClass src, Type typeOfSrc, JsonSerializationContext context) {
return context.serialize(src.value);
}
问题在于反序列化方面,我不应该重新实例化WrapperClass对象,因为默认情况下它已经存在,我只需要反序列化它的值,它就是'使用gson库可以做到这一点吗?
答案 0 :(得分:1)
那么,你想做什么:“读取”一些JSON字符串的内容,并用它“覆盖”现有对象。
我不知道有这样做的内置方法。除此之外:做一些复杂的事情在幕后听起来也是错误的做法。
因此,我的建议是:明确区分这些责任。含义:不是创建一个(几乎是反直觉的)解决方案,将JSON数据“合并”到现有对象中:一步一步地明确地做到这一点。像: