文章目录
- 一、jackson简介
- 二、jackson注解使用详解
- 1、序列化注解
- (1)@JsonAnyGetter格式化Map
- (2)@JsonGetter设置get方法与字段名
- (3)@JsonPropertyOrder设置格式化顺序
- (4)@JsonRawValue格式化字符串
- (5)@JsonValue指定格式化方法
- (6)@JsonRootName对根进行包装
- (7)@JsonSerialize指定字段序列化器
- 2、反序列化注解
- (1)@JsonCreator与@JsonProperty指定反序列构造器与字段名
- (2)@JacksonInject注入字段数据
- (3)@JsonAnySetter写入map
- (4)@JsonSetter指定字段名
- (5)@JsonDeserialize指定字段反序列化器
- (6)@JsonAlias为字段指定多个别名
- 3、其他注解
- (1)@JsonIgnoreProperties与@JsonIgnore字段忽略
- (2)@JsonInclude排除null字段
- (3)@JsonIncludeProperties指定序列化的字段
- (4)@JsonIgnoreType忽略类型
- (5)@JsonAutoDetect指定属性是否可见
- (6)@JsonProperty指定字段名
- (7)@JsonFormat指定时间/日期格式
- (8)@JsonUnwrapped指定展开/平铺的值
- (9)@JsonView指示将在其中包含属性以进行序列化/反序列化的视图
- (10)@JsonManagedReference、@JsonBackReference处理循环引用
- (11)@JsonIdentityInfo处理无限递归问题
- (12)@JsonFilter指定过滤器
- 4、处理多态注解
- 5、自定义jackson注解
- 6、禁用jackson注解
- 三、使用ObjectMapper
- 1、序列化
- 2、反序列化
- 3、强大的JsonNode
- 4、反序列化集合
- 5、反序列化Map
- 6、映射没有的字段,防止报错
- 7、自定义序列化/反序列化器
- 8、处理Date类型
- 9、用建造者模式创建ObjectMapper
- 四、处理未知属性的JSON内容
- 1、引出问题
- 2、解决方案一
- 3、解决方案二
- 五、常见异常与处理方案
- 1、JsonMappingException: Can Not Construct Instance Of
- 2、JsonMappingException: No Suitable Constructor
- 3、JsonMappingException: Root Name Does Not Match Expected
- 4、JsonMappingException: No Serializer Found for Class
- 5、JsonMappingException: Can Not Deserialize Instance Of
- 6、JsonMappingException: Cannot Deserialize Value of Type java.lang.String From Object Value
- 7、UnrecognizedPropertyException
- 8、JsonParseException: Unexpected Character (”’ (code 39))
- 9、JsonParseException: Unexpected Character (‘c’ (code n))
- 10、MismatchedInputException: Cannot Deserialize Instance