【发布时间】:2018-03-31 05:50:52
【问题描述】:
我需要将 JSON 正文发送到 REST 服务。不幸的是,服务很旧,我需要发送一个 POJO,包含 JSON 字符串字段。所以它看起来像这样:
class SomeData {
int id;
SomePojo jsonField;
...
}
所以 SomeData 应该像这样发送:
{'id': 1, 'jsonField': some_json_string}
我还没有找到任何 Jackson 魔术注释来使它工作,我怀疑它可以以某种方式制作,因为 Java 中的类型擦除并且可能无法为此目的编写自定义序列化程序,但我'我不确定。
您能否建议我如何使其工作或解决该问题的任何想法?非常感谢您!
【问题讨论】:
-
@Lino 嗨 Lino,感谢您的回答!当然。但这意味着我应该实现自己的自定义序列化程序,不是吗?
-
查找
org.simple.json,您可以使用类getter轻松地从类实例中创建json。 -
我认为 google gson 可能是您正在寻找的。它可以很容易地将 POJO 转换为 JSON,反之亦然。它在处理嵌套 POJO 方面也非常出色。
-
@Asew 您好,感谢您的建议,但是 O 如何以这种方式序列化字段?
-
@DmitrySenkovich 为 id 添加一个 getter,为 jsonField 添加一个 getter(它可以返回它的字符串表示以使事情变得更容易)。然后你应该在你的类中添加一个方法
toJson()来做类似JSONObject json = new JSONObject(this)
标签: java json jackson resttemplate jackson-databind