string x = JsonConvert.SerializeObject(clinitializer.AVOptions,new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore});
如实际的单词“null”而不是空值或者可能是{}.我不确定这是预期的行为.有谁知道如何让它不返回“null”这个词,或者我对JsonConvert的工作方式有一些基本的误解.先感谢您.
解决方法 NullValueHandling与属性的空值有关,而与自身的对象无关.例如,如果您有以下示例:
public class ExampleClass{ public string NullProperty { get; set; }}
然后你序列化它:
var obj = new ExampleClass();var Jsons = JsonConvert.SerializeObject(obj,new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore });
然后忽略NullProperty,你得到{}.
编辑
返回“null”的原因是因为JsON(https://tools.ietf.org/html/rfc7159)的RFC明确说明了以下内容:
A JsON value MUST be an object,array,number,or string,or one of
the following three literal names:false null true
The literal names MUST be lowercase. No other literal names are
allowed.value = false / null / true / object / array / number / string
false = %x66.61.6c.73.65 ; false
null = %x6e.75.6c.6c ; null
true = %x74.72.75.65 ; true
编辑:
我最初有一个工作,但我删除它,因为我真的认为你应该遵循RFC. RFC明确指出NulL对象必须用“null”表示,所以任何解决方法都不是一个好主意.
为了保持RFC,我会存储“null”或返回“null”而不是NulL.反序列化“null”时,它将返回NulL值.
〜干杯
总结以上是内存溢出为你收集整理的c# – JsonConvert.SerializeObject:序列化空值时出现意外结果全部内容,希望文章能够帮你解决c# – JsonConvert.SerializeObject:序列化空值时出现意外结果所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)