前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jackson error 含义log

jackson error 含义log

作者头像
Ryan-Miao
发布2018-03-13 13:39:02
1.2K0
发布2018-03-13 13:39:02
举报
文章被收录于专栏:Ryan MiaoRyan Miao

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

代码语言:javascript
复制
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)

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

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

代码语言:javascript
复制
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. 重写了构造方法但没有生命无参构造函数

代码语言:javascript
复制
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的字段不匹配,如果忽略不认识的字段,需要设

代码语言:javascript
复制
@JsonIgnoreProperties(ignoreUnknown = true)
代码语言:javascript
复制
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)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档