javajackson将列表序列化为xml和json
我有一个要序列化为json和XML的类:
@JacksonXmlRootElement(localName = "devices")
class DeviceWrapper { // <-- this class is intended to provide root xml name
@JacksonXmlProperty(localName = "device")
@JacksonXmlElementWrapper(useWrapping = false)
List<Device> devices
}
设备类只是POJO:
class Device {
String field1;
String field2;
...
}
将DeviceWrapper序列化为XML工作正常:
<?xml version="1.0"?>
<devices>
<device>
<field1>value</field1>
<field2>value</field2>
</device>
<device>
<field1>value</field1>
<field2>value</field2>
</device>
...
</devices>
但当我尝试将DeviceWrapper序列化为json时,我得到:
{
"devices": [
{
"field1": "val",
"field2": "val"
},
{
"field1": "val",
"field2": "val"
}
...
]
}
但我只想得到设备值列表:
[
{
"field1": "val",
"field2": "val"
},
{
"field1": "val",
"field2": "val"
},
...
]
也就是说,我只想将devices
作为列表的分组元素,而不想在json的情况下看到它。如何做到这一点
# 1 楼答案
欢迎使用Stack Overflow,用^{} 注释} 方法。如果定义如下所示的接口:
List<Device> devices
可以解决您的问题,但由于存在xml注释,这是不可能的:解决问题的一种方法是使用^{您可以将其添加到objectmapper中,并在不更改原始类代码的情况下获得预期结果: