我的项目中有一个带有循环引用的对象。我将[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);

10-07 20:18