Атрибуты JsonIgnore, не работающие в ASP.NET?

У меня есть объект в моем проекте с циклическими ссылками. Я поместил [JsonIgnore] выше поля как так:

    [JsonIgnore]
    public virtual Foobar ChildObject { get; set; }

Я все еще получаю ошибки циклической ссылки, когда я сериализирую объект. Единственные поля, которые не имеют JsonIgnore, являются строковыми полями и не должны вызывать это. Есть ли что-то еще, что я должен сделать, чтобы заставить JsonIgnore работать?

Спасибо!

20
задан JustinStolle 2 December 2012 в 17:43
поделиться

1 ответ

Вероятно, у вас есть какое-то другое свойство, которое ссылается на его родительский объект. Используйте параметр ReferenceLoopHandling.Ignore , чтобы предотвратить петли с саморегулированием.

using Newtonsoft.Json;

JsonSerializerSettings jsSettings = new JsonSerializerSettings();
jsSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;

string json = JsonConvert.SerializeObject(foobars, Formatting.None, jsSettings);
26
ответ дан 30 November 2019 в 00:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: