针对特定领域的Jackson CustomSerializer

时间:2016-08-26 22:02:18

标签: java jackson

我需要获取包含~60个字段的文档并将其映射到客户架构。我们的模式有一个字段,我有一个像这样的数组:

"document1": {"type":"Resume", "https://.s3.amazonaws.com/F58723BD-6148-E611-8110-000C29E6C08D.txt"}
"document2": {"type":"Reference", "url":"https://.s3.amazonaws.com/F58723BD-6148-E611-8110-000C29E6C08D.txt"}

我需要将其转换为:

com.fasterxml.jackson.core.JsonGenerationException: Can not write a field name, expecting a value

我已经开始使用cumstom序列化程序但是真的非常希望不必为所有60个字段编写自定义序列化程序来执行该转换。有没有办法告诉杰克逊正常地序列化所有其他字段并将这个逻辑用于这一个实例?

我已经尝试了很多选项,并且不断收到如此有用的错误:

QAbstractItemView::startDrag()

如果我甚至可以确定这意味着它将会有很大帮助。

提前致谢!

2 个答案:

答案 0 :(得分:0)

一种可能的解决方案是让cumstom序列化程序为所有可以进行默认序列化的字段调用默认的序列化程序。
请参阅此主题以了解如何执行此操作How to access default jackson serialization in a custom serializer

答案 1 :(得分:0)

如果您从输入创建一个地图,其中值是带有原始Json的字符串,您可以使用Steve Kuo在Jackson @JsonRawValue for Map's value

中编写的自定义序列化程序