我的项目中有一个带有循环引用的对象。我将[JsonIgnore]放在字段上方,如下所示:
[JsonIgnore]
public virtual Foobar ChildObject { get; set; }
序列化对象时,我仍然遇到循环引用错误。没有JsonIgnore的唯一字段是字符串字段,不应导致这种情况。为了使JsonIgnore正常工作,我还需要做其他事情吗?
谢谢!
最佳答案
您可能还有一些其他属性可以链接回其父级。使用ReferenceLoopHandling.Ignore
设置可以防止自引用循环。
using Newtonsoft.Json;
JsonSerializerSettings jsSettings = new JsonSerializerSettings();
jsSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
string json = JsonConvert.SerializeObject(foobars, Formatting.None, jsSettings);