【发布时间】:2015-09-04 11:29:47
【问题描述】:
在我的 WEB API 中,我得到 XML 和 Json 格式的结果。它工作正常。但是,当我从数据库收集数据时,一些记录是空的。在转换为 xml 或 json 时,结果是不同的。 输出的通用类是。
public class items
{
[JsonProperty(PropertyName = "frequency")]
[XmlElement(ElementName = "frequency")]
public string Frequency { get; set; }
[JsonProperty(PropertyName = "modulation")]
[XmlElement(ElementName = "modulation")]
public string Modulation { get; set; }
}
转换发生在
var Station = new items
{
Frequency = (mContent["frequency"] is DBNull) ? null : mContent["frequency"].ToString(),
Modulation = (mContent["modulation"] is DBNull) ? null : mContent["modulation"].ToString(),
}
对于 Json 结果,我得到了我真正想要的:
[{"items":[{"frequency":null,"modulation":null}]}]
XML 显示
<items>
<item/>
</items>
但我想要
<items>
<item>
<frequency/>
<modulation/>
</item>
</items>
怎么会这样?
【问题讨论】:
-
如果字符串 present 但为空字符串,我会期望
<frequency/>或<frequency></frequency>。您目前获得的 XML 对于空引用来说似乎是完全合理的。您是否考虑过在对象初始化程序中使用""而不是null? -
那个时候Xml结果是正确的,但是对于Json显示"frequency":"","modulation":""
-
那是正确的,对于一个空字符串。基本上,没有与
null等价的XML ...您必须从缺少元素来推断它。 (或使用 xsi:nil - 请参阅我的答案。)
标签: c# json xml asp.net-web-api xml-serialization