ARTS 打卡第 1 周: Jackson 如何自定义属性的序列化策略
Algorithm
题目:Leetcode 679.24 点游戏
Review
英文原文链接:http://www.cowtowncoder.com/blog/archives/2011/02/entry_443.html
用户(程序员)最关心的话题之一是如何配置 Jackson,使得可以控制 Java 对象的属性是否序列化。这篇短文介绍了 Jasckson 的 7 种属性过滤方案。
What gets serialized by default?
Changing auto-detection defaults: @JsonAutoDetect
Explicitly ignoring properties: @JsonIgnore, @JsonIgnoreProperties
Defining profiles for dynamic ignoral: JSON Views (@JsonView)
Ignoring all properties with specified type: @JsonIgnoreType
Fully dynamic filtering: @JsonFilter
Most extreme way to filter out properties: BeanSerializerModifier
具体来说,上层业务程序员使用方案 1、2、3、4 就已经可以满足了,但作为底层解析的公共组件,就有必要使用方案 6 和 7 了,目前笔者在实际项目中使用的是方法 6,JSON 过滤器是一种实现完全动态过滤的方法。最极端的方法是方案 7,基本思想是 BeanSerializerModifier 实例定义 Jackson BeanSerializerFactory 在构造序列化器期间调用的回调。
Tip
推荐闪电侠的《IntelliJ IDEA神器使用技巧》视频教程,1 个多小时的教程,总结了 IDEA 非常实用的一些使用技巧,如果学完后能灵活运用,相信提升 5-10 倍的开发效率不是问题。
Share
正则表达式
原文来自分享几个正则表达式相关的工具~
对程序员来说,正则表达式是一项非常基础而有用的技能,两个理由:
总有一天 RegEx 会是手头某个问题的最佳解决方案
当你在别人的代码中看到正则表达式时,它不是神秘的代码
如果你想更系统性的学习正则表达式,不妨看看 《精通正则表达式》第 3 版。
版权声明: 本文为 InfoQ 作者【前行】的原创文章。
原文链接:【http://xie.infoq.cn/article/ad4de243184a90b952058a315】。文章转载请联系作者。
评论