2013-04-07 47 views
1

我使用JSON作为保存格式。如何在使用GSON反序列化时记录丢弃的字段?

如果我更改我的对象的字段名称,GSON将在加载旧版本时默默丢弃原始字段,因为它们不再匹配新名称。

我希望能够得到一些通知,如果我通过重构意外执行此操作,即“警告:在反序列化期间在ObjectType中找不到变量名称”。 有@Version注释,但它不完全是我正在寻找。

有没有人写过一个自定义的反序列化器或自定义类型转换器,当JSON中的字段不存在时会抛出错误?有没有另外一个序列化库来做到这一点?

编辑:我仍然会对GSON解串器感兴趣,如果任何人有这样的话。

回答

-1

Jackson可用于对意外的JSON元素进行失败。 Jackson还可以配置为收集(并记录)所有未绑定的JSON元素,如http://www.cowtowncoder.com/blog/archives/2010/09/entry_414.html(搜索“任何setter”)中所述。

如果您已经熟悉Gson,我记录了如何使用Jackson在Gson用户指南http://programmerbruce.blogspot.com/2011/07/gson-v-jackson-part-6.html中做同样的事情。

+0

谢谢,这是我需要的。我将其标记为解决方案,因为它可能比使用自定义解串器更好。 – bobsgame 2013-04-07 04:53:30

+0

这是否真的回答标题中提出的问题? _“如何在使用GSON反序列化时记录丢弃的字段?”_ – 2014-01-09 01:51:16