zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    Vue中v-for不绑定key会怎样
    关于Vuex可直接修改state问题
    不要完全相信Chrome控制台打印的信息
    Vue挂载元素的替换
    (转)openURL的使用方法
    iOS:将NSDate转换为当前时区时间
    OC中使用 static 、 extern、 const使用
    iOS: 正则表达式
    iOS:原生二维码扫描
    iOS:ABPeoplePickerNavigationController系统通讯录使用
  • 原文地址:https://www.cnblogs.com/woshimrf/p/5845364.html
Copyright © 2011-2022 走看看