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;
在 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;