为什么我用JSON.NET反序列化时我的默认值被忽略了?我使用JSON.NET作为我的主要序列化程序。这是我的模型,请参阅我设置了一些JSONProperties和DefaultValue。publicclassAssignmentContentItem{[JsonProperty("Id")]publicstringId{get;放;}[JsonProperty("Qty")][DefaultValue(1)]publicintQuantity{get;放;当我序列化List时,它做得很好:OUTPUT:[{"Id":"Q0"},{"Id":"Q4"},{"Id":"Q7"}]但是当我想反序列化这个jsonContent时,属性Qty总是0而不是设置为默认值。我的意思是,当我反序列化jsonContent时,因为Quantity的默认值应该是1而不是0。DeserializeObject(jsonContent,s);}我该怎么办DefaultValue属性没有设置属性的值。看到这个问题:.NETDefaultValueproperty你能做的最好的事情就是在构造函数中设置值:publicclassAssignmentContentItem{[JsonProperty("Id")]publicstringId{get;放;}[JsonProperty("Qty")]publicintQuantity{get;放;}publicAssignmentContentItem(){this.Quantity=1;这行在哪里:AssignmentContentItemitem=JsonConvert.DeserializeObject("{"Id":"Q0"}");在AssignmentContentItem中,其Quantity设置为1。您可以使用DefaultValueHandling.Populate设置,以便Json.Net将使用默认值填充创建的对象。publicstaticListDeserializeAssignmentContent(stringjsonContent){返回JsonConvert。DeserializeObject>(jsonContent,newJsonSerializerSettings{DefaultValueHandling=DefaultValueHandling.Populate,NullValueHandling=NullValueHandling.Ignore});}http://www.newtonsoft.com/json/html/T_Newtonsoft_Json_DefaultValueHandling.htm以上是C#学习教程:为什么用JSON.NET反序列化时忽略了我的默认值?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
