【发布时间】:2020-06-23 23:14:28
【问题描述】:
在 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();
它正在序列化的类有:
@JacksonXmlProperty(localName = "Datasources")
private List<DataSource> datasources;
Datasource 有几个属性,没有一个名为 Datasources。
但是创建的 XML 有:
SqlServer SQL System.Data.SqlClient 数据源=mssql.windward.net;初始目录=Northwind;用户ID=demo;密码=demo为什么有两个 Datasources 节点?在作为 C# ASP.NET WebApi2 应用程序的服务器端,它没有反序列化 Datasource 部分,我认为这是由于嵌入式 Datasources 节点造成的。
如何避免这种情况?
【问题讨论】:
-
嗨,有趣的是,也许由于某种原因该列表包含多个元素?或者
DataSource的序列化表示可能出乎意料,而String的连接可能会更好。
标签: serialization jackson xml-serialization