Json.NET如何避免循环引用
发布时间:2020-12-16 18:42:20 所属栏目:百科 来源:网络整理
导读:Json.NET在将对象序列化为Json字符串的时候,如果对象有循环属性,那么会导致Json.NET抛出循环引用异常。 ? 有两种方法可以解决这个问题: 1、在对象循环引用的属性上打上[JsonIgnore]标签,例如: public class UserProfile{ public string UserCode { get
Json.NET在将对象序列化为Json字符串的时候,如果对象有循环属性,那么会导致Json.NET抛出循环引用异常。 ? 有两种方法可以解决这个问题: 1、在对象循环引用的属性上打上[JsonIgnore]标签,例如: public class UserProfile { public string UserCode { get; set; } public string UserName { get; set; } public string MailAddress { get; set; } public long LoginTimeStamp { get; set; } [JsonIgnore] protected List<Role> roles; [JsonIgnore] public List<Role> Roles { get { return roles; } } } ? 2、另一个方法是在调用Json.NET的SerializeObject方法序列化对象时,设置ReferenceLoopHandling属性为ReferenceLoopHandling.Ignore,如下所示: var stringObject = JsonConvert.SerializeObject(value,new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }); 这样Json.NET检测到循环引用时,就会停止序列化操作,忽略对象的循环引用属性 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |