jackson error 含义log

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

Caused by: com.fasterxml.jackson.databind.JsonMappingException: Can not deserial
ize instance of java.lang.String out of START_OBJECT token
 at [Source: org.apache.http.conn.EofSensorInputStream@51796217; line: 1, column
: 274] (through reference chain: com.expedia.lodging.domain.valueobject.poi.tip.
Tip["postalAddress"])
        at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingE
xception.java:164)
        at com.fasterxml.jackson.databind.DeserializationContext.mappingExceptio
n(DeserializationContext.java:691)
        at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deseriali
ze(StringDeserializer.java:46)
        at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deseriali
ze(StringDeserializer.java:11)
        at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize
(SettableBeanProperty.java:525)
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)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值