[英]Jackson serialization - dynamically change element name
我有以下 XML 必须转换为 JSON:
<acme>
<acme_name>1</acme_name>
<acme_type>2</acme_type>
<desc>desc0</desc>
</acme>
我想要以下 JSON:
{
"acme":{
"name":"1",
"type":"2",
"desc":"desc0"
}
}
所以我想要的是
在 XML 后面有带有@XmlElement
注释的 Java bean。
我不能在 Java bean 中使用 jackson 注释,因为这些类来自第 3 方来源。
我以为我可以像使用JsonSerializer
class GeneralSerializer extends JsonSerializer {
@Override
public void serialize(Object value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
...
}
}
但我必须指定我想要序列化的 Java bean(见下文),并且我不能对所有元素使用相同的序列化程序。
public class ItemSerializer extends JsonSerializer<Item>
问题是 XML 中有很多不同的元素,并指定它们执行相同操作的序列化程序(即搜索下划线字符并仅使用其后的文本)似乎有点矫枉过正。
我可以指定一个可以应用于每个元素的通用序列化程序吗?
有没有其他解决方案?
感谢您的帮助!
----------------- 更新 1 -----------------
我想强调一下,我没有 XML 文本,但我有代表 Z3501BB093D363810B671059B9CFED3FZ8 的 Java bean(用 @Xml 注释...)
----------------- 更新 2 -----------------
我不坚持Jackson。 如果另一个 JSON 库(例如 GSON)中有解决方案,请不要吝啬我!
一些想法:
或者
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.