我在代码中所做的是接收JSON文件并通过以下方式将其反序列化为我的自定义对象:
JsonConvert.DeserializeObject<MyObjectType>(response);
此时MyObject将某些字符串属性设置为NULL,我将使用以下命令将此对象序列化为XML:
XmlSerializer serializer = new XmlSerializer(typeof(MyObjectType));
var XmlCase = String.Empty;
using (var stringWriter = new StringWriter())
{
using (XmlWriter xmlWriter = XmlWriter.Create(stringWriter))
{
serializer.Serialize(xmlWriter, MyObject);
XmlCase = stringWriter.ToString();
}
}
我想要的是在JsonConvert.DeserializeObject期间用空字符串替换那些NULL值(可能我希望通过某些设置发生这种情况),或者我希望在XML序列化期间发生这种情况。在任何一种情况下,我想避免的是解析我的对象搜索NULL值。
答案 0 :(得分:2)
首先,你需要指定一个默认的“空”&#39;当前为null的字符串的值:
string myString = "";
然后你需要告诉JSON(de)序列化程序忽略空值并使用设置对象用默认值填充字段。
var settings = new JsonSerializerSettings() {
NullValueHandling = NullValueHandling.Ignore,
DefaultValueHandling = DefaultValueHandling.Populate,
}
JsonConvert.DeserializeObject<MyObject>(Response, settings);
它现在应该按照你想要的方式行事。