【问题标题】:Passing Java Object to a RESTful service将 Java 对象传递给 RESTful 服务
【发布时间】:2017-03-05 10:26:37
【问题描述】:

我使用HttpURLConnection 将Java 对象传递给接受json 的Web 服务。 使用 com.fasterxml.jackson 将对象转换为 json 字符串,然后将其写入输出流,该服务适用于简单的虚拟 POJO,但是当我使用我最初打算发送的复杂对象时,应用程序会中断, 控制台充满了 StackOverflow 等异常和无休止的混乱

在 com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:690) 在 com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155)

常见的解决方案就像用 json 注解对类进行注解。 有没有其他方法可以绕过它,比如使用不同的 accept:content-type 进行 Web 服务(除了 json 或 xml,因为它们需要带注释的对象)或类似的?

【问题讨论】:

  • 发送一个结构与服务预期的 JSON 结构匹配的对象。如果您的原始对象与此结构不匹配,则可以对其进行注释以匹配它,或者您可以将相关状态复制到结构匹配的对象,即 DTO。

标签: java rest jackson2


【解决方案1】:

您可以使用 mixin 注释为 Jackson 提供有关如何序列化数据的提示,而不会因不必要的依赖项而污染 POJO。

这是对文档文章的参考,其中有很好的例子: http://wiki.fasterxml.com/JacksonMixInAnnotations

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多