反序列化期间何时应忽略JSON中的额外字段?

时间:2018-08-21 18:30:51

标签: json jackson deserialization json-deserialization

SO question说明了如何在用Jackson反序列化JSON时忽略多余的字段 通过使用@JsonIgnoreProperties(ignoreUnknown=true),但是我想知道何时 / 为什么

这将覆盖Jackson的默认设置,即为意外字段抛出异常。我假设我是否应该正常使用该默认值,但是什么时候/为什么要将我的系统设计为严格,而不是接受它可以接受的一切?

我想这更多是一个设计哲学问题,所以请让我知道这是否是问的地方。

1 个答案:

答案 0 :(得分:1)

SO question本身有一种情况可以回答这个问题。

  

问题是,JSON对象可能会更改,并且在发布应用程序时会添加新字段,但是当前即使添加简单的String字段也可能会中断,可以安全地将其忽略。

在很多情况下,您需要在对JSON进行序列化/反序列化时忽略某些json属性,例如,如果您正在使用Web服务中的json,并且只希望序列化一些有意义的字段。例如,从员工详细信息json中,您只需要员工的名字和姓氏。这样,您将避免拥有沉重的员工对象。

如果使用的服务在将来添加一些字段时进行升级,则您的代码将继续起作用。