JsonIgnore атрибуты не работают в ASP.NET? - PullRequest
19 голосов
/ 02 июня 2010

В моем проекте есть объект с круговыми ссылками. Я поставил [JsonIgnore] над полем так:

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

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

Спасибо!

1 Ответ

24 голосов
/ 04 июня 2010

Возможно, у вас есть другое свойство, которое ссылается на его родителя Используйте параметр ReferenceLoopHandling.Ignore для предотвращения циклов самоссылки.

using Newtonsoft.Json;

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

string json = JsonConvert.SerializeObject(foobars, Formatting.None, jsSettings);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...