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

Список записей API в C#

Коллекция на сервере часто приходит как JSON-массив в корне ответа - строка начинается с "[", а не с "{".

После GetStringAsync массив разбирают через JsonDocument.Parse и берут RootElement. Свойство GetArrayLength даёт число элементов, а [0] - первый объект. Адрес "/users" без суффикса возвращает десять учебных пользователей; длина массива будет 10:

using System.Net.Http; using System.Text.Json; using HttpClient client = new(); string body = await client.GetStringAsync("https://jsonplaceholder.typicode.com/users"); using JsonDocument doc = JsonDocument.Parse(body); JsonElement root = doc.RootElement; Console.WriteLine(root.GetArrayLength()); Console.WriteLine(root[0].GetProperty("name").GetString());

Фильтр через параметры строки запроса меняет состав массива на стороне сервера. Для "/posts?userId=1" в ответе только посты одного автора. У первого элемента читают userId и длину title. Перед разбором проверяют, что HTTP-код успешный, иначе в теле может оказаться не JSON:

using System.Net.Http; using System.Text.Json; using HttpClient client = new(); using HttpResponseMessage response = await client.GetAsync("https://jsonplaceholder.typicode.com/posts?userId=1"); response.EnsureSuccessStatusCode(); using JsonDocument doc = JsonDocument.Parse(await response.Content.ReadAsStringAsync()); JsonElement first = doc.RootElement[0]; Console.WriteLine(first.GetProperty("userId").GetInt32()); Console.WriteLine(first.GetProperty("title").GetString()!.Length);

Разберите локальную строку "["red","green","blue"]" и выведите в консоль длину массива и первый элемент.

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