jackson error 含义log

1. 反序列化失败,类型不匹配

《jackson error 含义log》 
View Code

这段错误是因为给出的filed是String类型,而序列化的是字符串对应的为{},即使一个object。

 

2. 不是public的filed以及没有getter

com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class com.test.json.jackson.User and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) )

当序列化的时候,即将POJO转换为json的时候,需要有个getter方法。

 

3. 重写了构造方法但没有生命无参构造函数

com.fasterxml.jackson.databind.JsonMappingException: No suitable constructor found for type [simple type, class com.test.json.jackson.User]: can not instantiate from JSON object (need to add/enable type information?)
 at [Source: java.io.StringReader@5f2108b5; line: 1, column: 2]

反序列化的时候,jackson需要通过无参构造函数来创建POJO。如果这时候你添加了构造函数并且带有参数,则无参构造函数被掩盖,则报错。

 

4.字符串中的字段和要转换POJO的字段不匹配,如果忽略不认识的字段,需要设

@JsonIgnoreProperties(ignoreUnknown = true)
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "a" (class com.test.json.jackson.User), not marked as ignorable (one known property: "name"])
 at [Source: java.io.StringReader@75329a49; line: 1, column: 9] (through reference chain: com.test.json.jackson.User["a"])

    at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:79)
    at com.fasterxml.jackson.databind.DeserializationContext.reportUnknownProperty(DeserializationContext.java:555)

 本文转自Ryan.Miao博客园博客,原文链接:http://www.cnblogs.com/woshimrf/p/5845364.html,如需转载请自行联系原作者

点赞