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

Разбор JSON-тела в C#

Тело ответа API - это всегда текст.

Перед разбором его удобно сохранить в переменную, даже если строка уже задана в программе. Значение ключа само может быть объектом со своими полями.

Вложенный объект собирают отдельно и кладут в корень под ключом user. Метод JsonSerializer.Serialize превращает такую структуру в одну строку JSON:

using System.Text.Json; var person = new { name = "john", surn = "smit" }; var doc = new { user = person, city = "London" }; Console.WriteLine(JsonSerializer.Serialize(doc));

Готовый фрагмент JSON можно разобрать сразу в дерево и обратиться к вложенным полям через цепочку GetProperty:

using System.Text.Json; string raw = "{\"user\": {\"name\": \"john\", \"surn\": \"smit\"}, \"city\": \"London\"}"; using JsonDocument doc = JsonDocument.Parse(raw); Console.WriteLine(doc.RootElement.GetProperty("user").GetProperty("name").GetString()); Console.WriteLine(doc.RootElement.GetProperty("city").GetString());

Если в корне лежит массив строк, после разбора элементы доступны по индексу. Порядок в C# совпадает с порядком в JSON:

using System.Text.Json; string raw = "[\"alpha\",\"beta\",\"gamma\"]"; using JsonDocument tags = JsonDocument.Parse(raw); Console.WriteLine(tags.RootElement[0].GetString() + "," + tags.RootElement[1].GetString());

Дан код:

string raw = "{ \"title\": \"Atlas\", \"pages\": 320 }";

Разберите строку и выведите в консоль название и число страниц.

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