我在代码中所做的是接收一个 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 值。
首先,您需要在当前为 null 的字符串上指定一个默认的"空"值:
string myString = "";
然后,您需要告诉 JSON (反(序列化程序忽略空值,并使用设置对象使用其默认值填充字段。
var settings = new JsonSerializerSettings() {
NullValueHandling = NullValueHandling.Ignore,
DefaultValueHandling = DefaultValueHandling.Populate,
}
JsonConvert.DeserializeObject<MyObject>(Response, settings);
它现在应该按照您想要的方式运行。