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