java - 使用 JsonIgnoreProperties 特定属性反序列化属性只存在于 JSON
问题描述
我偶然发现了一些将JsonIgnoreProperties添加到类中不存在但存在于中的属性的代码JSON
,例如:
@JsonIgnoreProperties({"ignoreprop"})
public class VO {
public String prop;
}
JSON
什么时候
{ "prop":"1", "ignoreprop":"9999"}
我想知道忽略属性是否在性能方面有任何优势,还是只是冗余代码?
可用于抑制属性序列化(序列化期间)或忽略 JSON 属性读取处理(反序列化期间)的注释。
编辑
忽略所有特定属性(使用
@JsonIgnoreProperties(ignoreUnknown=true)
)是否有优势?
解决方案
我想知道忽略属性是否有任何优势
是的,它被大量用于服务中的前向兼容性。假设您有服务 A 和 B。目前 A 使用一些 JSON 对象向 B 发送请求。
现在您想在 JSON 中支持一个新属性。如果你有这个功能,你可以让 A 在 B 知道如何处理它之前开始发送新属性。解耦这两个服务的开发过程。
忽略所有的特定属性
这种情况确实有一些小的性能优势。首先,它不会尝试解析这个可以是简单字符串或复杂对象/数组的属性。其次,它可以帮助您避免处理异常。认为以下所有内容都可以是有效的调用,而您只关心prop
:
{ "prop":"1", "ignoreprop":"9999"}
{ "prop":"1", "ignoreprop":{ "a": { "key": "value", "foo": false }}}
{ "prop":"1", "ignoreprop":[1,2,3,4,5,6..... 1000000]}
推荐阅读
- reactjs - 在 React 中使用 for 循环时,this.setState 没有将项目推入数组
- python - 如何在两列数据框中可视化(绘图)非序列日期时间?
- javascript - 如何防止具有动量滚动的滚动条隐藏在 iOS Safari 上?
- applescript - Applescript 错误 - 无法获取...文件夹的每个文件?
- vb.net - 我不知道为什么'Doub'没有更新
- database - 哪个更好,删除所有关系后创建全部或检查数据库中是否存在后删除或创建
- reactjs - 没有 https 的 React PWA - 有什么限制?
- javascript - 如何根据javascript中数组中的路径遍历嵌套对象?
- sql - 重复日期计算器 SQL
- pandoc - 将 Markdown 文件的单个页面导出为 pdf