当前位置: 首页 > 编程语言 > C#

如何在使用JSON.Net序列化期间有条件地忽略字段和属性?

时间:2023-04-11 01:30:02 C#

如何在使用JSON.Net序列化期间有条件地忽略字段和属性?如何在使用JSON.Net序列化期间有条件地忽略字段和属性?我不能从JsonIgnoreAttribute继承,因为它是一个密封类。我该怎么办?您可以使用JSON.NET的ShouldSerialize语法。JSON.NET站点上有一个很好的示例:http://www.newtonsoft.com/json/help/html/ConditionalProperties.htmpublicclassEmployee{publicstringName{get;放;}public员工经理{get;放;}publicboolShouldSerializeManager(){//如果员工是他们自己的经理,则不要序列化??Manager属性return(Manager!=this);如果ShouldSerialize不符合您的需求,您可以使用ContractResolvers来完全控制序列化:http://www.newtonsoft.com/json/help/html/ContractResolver.htm我找到了答案。我继承自JsonConverter并创建了一个新的转换器。以上是C#学习教程:HowtoconditionallyignorefieldsandpropertiesduringserializationwithJSON.Net?如果分享的内容对你有用,需要进一步了解C#学习教程,希望你多多关注——{varlist=(IList)value;JArrays=newJArray();foreach(variteminlist){JTokentoken=JToken.FromObject(item);JObjectobj=newJObject();foreach(JPropertypropintoken){if(prop.Name!="Title")//你的逻辑在这里obj.Add(prop);}s.Add(obj);}s.WriteTo(作家);}publicoverrideobjectReadJson(JsonReaderreader,TypeobjectType,objectexistingValue,JsonSerializerserializer){thrownewNotImplementedException("UnnecessarybecauseCanReadisfalse.该类型将跳过转换器。");}publicoverrideboolCanRead{get{returnfalse;}}publicoverrideboolCanConvert(TypeobjectTypeob){return!=typeof(IList);}}本文收集自网络,不代表立场,如涉及侵权,请点击右侧联系管理员删除如转载请注明出处: