Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
1288 of 1492 menu
◀ ▶

MaxDepth

По умолчанию MaxDepth равен 0, и это означает предел 64. Корень считается глубиной 1. Плоский объект при MaxDepth = 1 сериализуется; вложенный объект при том же пределе даёт JsonException.

Синтаксис

options.MaxDepth = 1;

Пример

Давайте проверить значение по умолчанию:

using System; using System.Text.Json; class Program { static void Main() { var options = new JsonSerializerOptions(); bool res = options.MaxDepth == 0; Console.WriteLine(res); } }

Результат выполнения кода:

True

Пример

Давайте сериализовать плоский класс:

using System; using System.Text.Json; class Item { public string Name { get; set; } } class Program { static void Main() { var options = new JsonSerializerOptions { MaxDepth = 1 }; Item item = new Item { Name = "abcde" }; string res = JsonSerializer.Serialize(item, options); Console.WriteLine(res); } }

Результат выполнения кода:

{"Name":"abcde"}

Пример

Давайте сериализовать вложенный объект:

using System; using System.Text.Json; class Inner { public string Name { get; set; } } class Outer { public Inner Child { get; set; } } class Program { static void Main() { var options = new JsonSerializerOptions { MaxDepth = 1 }; Outer outer = new Outer { Child = new Inner { Name = "abcde" } }; try { JsonSerializer.Serialize(outer, options); } catch (JsonException) { Console.WriteLine("fail"); } } }

Результат выполнения кода:

"fail"

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить