Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中的反序列化(.net json)或序列化(XmlSerializer)期间填充空值#_C#_Json_Xml_Serialization_Deserialization - Fatal编程技术网

C# 在C中的反序列化(.net json)或序列化(XmlSerializer)期间填充空值#

C# 在C中的反序列化(.net json)或序列化(XmlSerializer)期间填充空值#,c#,json,xml,serialization,deserialization,C#,Json,Xml,Serialization,Deserialization,我在代码中所做的是接收一个JSON文件,并通过以下方式将其反序列化到我的自定义对象中: JsonConvert.DeserializeObject<MyObjectType>(response); 我想要的是在JsonConvert.DeserializeObject期间用空字符串替换这些空值(可能我希望通过某些设置实现),或者在XML序列化期间实现。在这两种情况下,我都希望避免解析我的对象以搜索空值。首先,需要在当前为空的字符串上指定默认的“空”值: string myStrin

我在代码中所做的是接收一个JSON文件,并通过以下方式将其反序列化到我的自定义对象中:

JsonConvert.DeserializeObject<MyObjectType>(response);

我想要的是在JsonConvert.DeserializeObject期间用空字符串替换这些空值(可能我希望通过某些设置实现),或者在XML序列化期间实现。在这两种情况下,我都希望避免解析我的对象以搜索空值。

首先,需要在当前为空的字符串上指定默认的“空”值:

string myString = "";
然后,您需要告诉JSON(反)序列化程序忽略空值,并使用设置对象用默认值填充字段

var settings = new JsonSerializerSettings() {
    NullValueHandling = NullValueHandling.Ignore,
    DefaultValueHandling = DefaultValueHandling.Populate,
}
JsonConvert.DeserializeObject<MyObject>(Response, settings);
var settings=new JsonSerializerSettings(){
NullValueHandling=NullValueHandling.Ignore,
DefaultValueHandling=DefaultValueHandling.Populate,
}
反序列化对象(响应、设置);

现在,它的行为应该符合您的要求。

首先,您需要在当前为空的字符串上指定一个默认的“空”值:

string myString = "";
然后,您需要告诉JSON(反)序列化程序忽略空值,并使用设置对象用默认值填充字段

var settings = new JsonSerializerSettings() {
    NullValueHandling = NullValueHandling.Ignore,
    DefaultValueHandling = DefaultValueHandling.Populate,
}
JsonConvert.DeserializeObject<MyObject>(Response, settings);
var settings=new JsonSerializerSettings(){
NullValueHandling=NullValueHandling.Ignore,
DefaultValueHandling=DefaultValueHandling.Populate,
}
反序列化对象(响应、设置);
现在,它应该按照您的意愿行事