我必须将以下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中使用杰克逊注释,因为这些类来自第三方资源。
我认为我可以像这样使用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文本,但是有代表XML的Java bean(用@Xml ...注释)。
-----------------更新2 -----------------
我不坚持杰克逊。如果另一个JSON库(例如GSON)中有解决方案,请不要饶恕我!
答案 0 :(得分:0)
一些想法:
或