json 使用Jackson检查向后/向前POJO兼容性

6yoyoihd  于 2023-05-02  发布在  其他
关注(0)|答案(1)|浏览(134)

我使用JavaPOJO作为流经消息代理的消息。它们使用JacksonJSON库进行序列化/反序列化。每个消息(POJO)可以有多个版本:

class UserCreatedV1 { private String email; private String fullName; }
class UserCreatedV2 { private String email; private String fullName; private String preferredName; }

(省略了getter、constructors等)。如何到达:

  • 确保反序列化过程中不会发生错误,即使使用UserCreatedV1的客户端反序列化UserCreatedV2的json表示(反之亦然)
  • 静态检查UserCreatedV2是否向后/向前兼容UserCreatedV1(但不需要强制执行)
owfi6suc

owfi6suc1#

你可以用@JsonIgnoreProperties(ignoreUnknown = true)标记你的POJO,这样当反序列化到POJO v1时,v2专有的字段将被忽略,当从JSON v1反序列化到v2时,缺失的属性将被设置为null。您可以在此处阅读有关忽略未知属性的信息:Jackson Unmarshalling JSON with Unknown Properties

相关问题