反序列化时忽略废弃字段
本文关键字:废弃 字段 反序列化 | 更新日期: 2023-09-27 18:16:23
我一整天都在寻找一种方法来实现这一点,而没有结果…
我正在尝试反序列化一个对象。当我序列化它时,我有一个叫做obsoleteBool的bool值。在类的新版本中,我删除了这个bool,现在在反序列化时出现错误(未找到字段"obsoleteBool")。
在旧版本和新版本的类之间添加新字段是很容易的。即使不使用[OptionalField]属性…但是我如何管理删除旧版本和新版本之间的字段呢?
有三种可能的解决方案:
- 最简单的:将旧字段添加到类的新版本日志
- 自定义代码:实现自定义反序列化器
- 额外工作:编写一个转换程序,遍历所有序列化的类,用旧格式读取它们,并用新类定义重新序列化它们。
就业务价值而言,第一个选项可能更可取。