Jackson是一款非常优秀的JSON库, 它同时也是spring boot内置的JSON库。
关于Jackson的博客都是阅读logicbig网站Jackson turorial的阅读笔记。它的地址为: https://www.logicbig.com/tutorials/misc/jackson.html
知识体系
它的知识点有七个部分,分别为
- JSON结构:即对象转换为JSON串时,JSON串的多种结构。
- 属性,键值映射关系:分为三类,属性名称与键名称的映射关系,顺序,include/exclude(包含,排除)
- 属性值的格式化:分为两类,特殊字符,例如null, 空字符串,转义字符。特殊类型,例如日期,货币,枚举,泛型集合,复合对象,例如User的Address对象,希望转换为横线分隔的形式等。
- 复杂对象:泛型集合,枚举,复合对象等。
- 反序列化:大部分情况下,序列化与反序列过程是可逆的。但是在某些场景下,只存在于反序列化过程中,例如在反序列化时,指定属性的类型。
- 功能:转换器,过滤器,序列化器与反序列化器。序列化器与反序列化器相当于自定义序列化与反序列化的过程。我们之所以使用JSON库就是希望借助它们来完成序列化或反序列化的过程,现在反过来让我们自己去提供,个人感觉有点矛盾。若能实现,何必去找JSON库,若不能实现,这部分内容于没有任何意义。这部分略。
- JSON树,即将JSON设想为树形结构,进行编程。类似于HTML5 API中的TextNode,ElementNode诸如此类。略。