C# 使用JSON.NET将JSON转换为XML:仅当不为null时才将元素转换为属性
我们使用JSON.NET将分层对象转换为JSON,然后再转换为XML 我们知道反对这样做的理由,但有几个 支持它的论点,我们已经尝试了很多东西来达到这一点 我们遇到的一个问题是,有时属性会有空值。当调用时,这很好,但是当它是一个属性时,我们会抛出一个C# 使用JSON.NET将JSON转换为XML:仅当不为null时才将元素转换为属性,c#,xml,json,json.net,C#,Xml,Json,Json.net,我们使用JSON.NET将分层对象转换为JSON,然后再转换为XML 我们知道反对这样做的理由,但有几个 支持它的论点,我们已经尝试了很多东西来达到这一点 我们遇到的一个问题是,有时属性会有空值。当调用时,这很好,但是当它是一个属性时,我们会抛出一个NullReferenceException。我们的首选方法是将空字符串转换为空字符串,但是完全忽略它们是可以接受的 我们如何处理这个问题?一点分析表明,我们得到的所有NullReferenceException都是关于string属性的。我将以下内
NullReferenceException
。我们的首选方法是将空字符串转换为空字符串,但是完全忽略它们是可以接受的
我们如何处理这个问题?一点分析表明,我们得到的所有
NullReferenceException
都是关于string
属性的。我将以下内容放在getter中,以返回字符串。如果字符串确实没有初始化,则返回空的而不是null
。这不是一个优雅的解决方案,但它适用于我们的情况
你从哪里获得NRE?见下文;它位于string
properties上。一个小小的getter改动为这种情况提供了一个坚固的、但针对具体情况的补丁。
[JsonProperty(PropertyName = "@Code")]
public string ProductCode
{
get { return _productCode == null ? string.Empty : _productCode ; }
set { _productCode = value.Trim(); }
}