【问题标题】:Jackson with Spring Boot杰克逊与 Spring Boot
【发布时间】:2014-08-06 05:14:05
【问题描述】:

您好,我使用 Jackson Faster 从关系表中获取数据以避免在从 POJO 转换为 JSON 时进行迭代。

在我发布相同的实体对象之后它给出了一个错误。

错误:

ERROR 
. c.j.MappingJackson2HttpMessageConverter : 
Failed to evaluate deserialization for type 
[simple type, class com.nbfc.entity.CustmastState]:
com.fasterxml.jackson.databind.JsonMappingException:
Multiple back-reference properties with name 'defaultReference'

Jackson:具有名称的多个反向引用属性。

请检查一次..

【问题讨论】:

    标签: json jackson spring-boot


    【解决方案1】:

    听起来您的实体包含对另一个实体的引用,而另一个实体又具有对它的引用。 Jackson 不喜欢这些循环引用。

    因此@JsonBackReference 注释。使用该注释对实体引用进行注释,Jackson 将避免这种无限循环。

    【讨论】:

    • 感谢史蒂夫,是的,它有实体引用,我使用了@JsonBackReference,因此避免了无限循环。在我使用具有相同实体的“POST”方法发布数据之后。然后浏览器返回 Unsupported media-type here it's unable to De-serialize Object ,当我将数据发布到服务器时,会出现上述问题。
    • 很确定,除非您自己进行解析,否则您将无法将实体及其所有链接实体作为单个对象发布到您的服务。您最好为 API 接口创建一个单独的资源类。或者,根据您的处理方式,使用 @XmlTransient / @JsonIgnore 注释可能是可行的,这样它甚至不会尝试编组链接的实体。
    猜你喜欢
    • 1970-01-01
    • 2014-05-28
    • 2018-02-03
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    相关资源
    最近更新 更多