我使用JSON作为保存格式。
如果我更改了我的对象的字段名称,GSON将在加载旧版本时默默地丢弃原始字段,因为它们不再与新名称匹配。
如果我通过重构意外地执行此操作,我希望能够得到一些通知,即“警告:在反序列化期间在ObjectType中找不到variableName”。 有一个@Version注释,但它并不是我正在寻找的。 p>
有没有人写过自定义反序列化器或自定义类型转换器,当类型中不存在JSON中的字段时会抛出错误?是否有另一个序列化库来执行此操作?
编辑:我仍然会对GSON反序列化程序感兴趣,如果有人有这样做的话。
答案 0 :(得分:-1)
Jackson可用于在意外的JSON元素上失败。 Jackson也可以配置为收集(和记录)所有未绑定的JSON元素,如http://www.cowtowncoder.com/blog/archives/2010/09/entry_414.html所述(搜索“任何setter”)。
如果你已经熟悉Gson,我记录了如何使用Jackson来执行http://programmerbruce.blogspot.com/2011/07/gson-v-jackson-part-6.html中Gson用户指南中涵盖的相同内容。