反序列化时忽略废弃字段

本文关键字:废弃 字段 反序列化 | 更新日期: 2023-09-27 18:16:23

我一整天都在寻找一种方法来实现这一点,而没有结果…

我正在尝试反序列化一个对象。当我序列化它时,我有一个叫做obsoleteBool的bool值。在类的新版本中,我删除了这个bool,现在在反序列化时出现错误(未找到字段"obsoleteBool")。

在旧版本和新版本的类之间添加新字段是很容易的。即使不使用[OptionalField]属性…但是我如何管理删除旧版本和新版本之间的字段呢?

反序列化时忽略废弃字段

有三种可能的解决方案:

    最简单的:将旧字段添加到类的新版本日志
  • 自定义代码:实现自定义反序列化器
  • 额外工作:编写一个转换程序,遍历所有序列化的类,用旧格式读取它们,并用新类定义重新序列化它们。

就业务价值而言,第一个选项可能更可取。