编程语言
首页 > 编程语言> > java-使用JsonIgnoreProperties特定属性反序列化属性仅存在于JSON中

java-使用JsonIgnoreProperties特定属性反序列化属性仅存在于JSON中

作者:互联网

我偶然发现了一些将JsonIgnoreProperties添加到属性的代码,该属性在类中不存在,但在JSON中存在,例如:

@JsonIgnoreProperties({"ignoreprop"})
public class VO {
   public String prop;
}

当JSON是

{ "prop":"1", "ignoreprop":"9999"}

我想知道忽略属性是否在性能方面具有任何优势,还是仅仅是冗余代码?

Annotation that can be used to either suppress serialization of properties (during serialization), or ignore processing of JSON properties read (during deserialization).

编辑

是否有优势而不是整体上忽略特定属性
@JsonIgnoreProperties(ignoreUnknown = true))?

解决方法:

I wonder if ignoring properties has any advantage

是的,它用于服务的前向兼容性.假设您有服务A和B.当前,A使用一些JSON对象向B发送请求.
现在,您想在JSON中支持新属性.如果您具有此功能,则可以让A在B知道如何处理它之前开始发送新属性.解耦这两个服务的开发过程.

ignoring specific property over all

这种情况确实有一些次要的性能优势.首先,它不会尝试解析此属性,该属性可以是简单的字符串或复杂的对象/数组.其次,它可以帮助您避免处理异常.认为以下所有内容都是有效的调用,您只关心prop:

{ "prop":"1", "ignoreprop":"9999"}

{ "prop":"1", "ignoreprop":{ "a": { "key": "value", "foo": false }}}

{ "prop":"1", "ignoreprop":[1,2,3,4,5,6..... 1000000]}

标签:json-deserialization,json,java
来源: https://codeday.me/bug/20191108/2007749.html