Java:Jackson 序列化正在创建 2 个节点

Java: Jackson serializing is creating 2 nodes

在 REST 查询的客户端,我的 Java 客户端使用 Jackson (om.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.11.0) 进行以下调用:

XmlMapper xmlMapper = new XmlMapper();
xmlMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
ByteArrayOutputStream streamTemplate = new ByteArrayOutputStream();
xmlMapper.writeValue(streamTemplate, template);
streamTemplate.flush();

正在序列化的 class 有:

@JacksonXmlProperty(localName = "Datasources")
private List<DataSource> datasources;

并且数据源有几个属性,none 命名为数据源。

但是创建的 XML 有:

SQL服务器 SQL System.Data.SqlClient 数据源=mssql.windward.net;初始目录=Northwind;用户 ID=demo;密码=demo

为什么是两个数据源节点?在作为 C# ASP.NET WebApi2 应用程序的服务器端,它没有反序列化数据源部分,我认为这是由于嵌入式数据源节点造成的。

如何避免这种情况?

原来答案很简单。注释如下:

@JacksonXmlElementWrapper(localName = "Datasources")
@JacksonXmlProperty(localName = "Datasource")
private List<DataSource> datasources;