Извлечение данных из Json с помощью json. net - PullRequest
0 голосов
/ 04 мая 2020

, поэтому у меня есть текст JSON, и мне нужно извлечь из него значение некоторых полей

{"data":{"shortcode":{"id":"id123","shortcode":"alpha1","by":{"page_info":{"has_next_page":true,"cursor":"sometext=="},"edges":[{"node":{"id":"id1234","username":"admin123","full_name":"admin name",}},{"node":{"id":"id4321","username":"user123","full_name":"user ",}}]}}},"status":"ok"}

Теперь мне нужно значение каждого поля "username" и курсора из него

Я новичок в этом топи c, и я ценю любую помощь

Ответы [ 2 ]

1 голос
/ 04 мая 2020

Вы можете установить Newtonsoft. Json, как пакет Nuget, если он еще не установлен в вашем проекте. Затем используйте метод JsonConvert.DeserializeObject (), чтобы разобрать его в динамический тип объекта c, используя который вы можете получить доступ ко всем его полям / свойствам.

Код будет выглядеть примерно так:

Добавьте ссылку на Newtonsoft. Json

using Newtonsoft.Json;

Метод DeserializeObject для разбора строки на тип Dynami c (вместо VAR можно использовать Dynami c)

var obj = JsonConvert.DeserializeObject<dynamic>(text);

Для поле курсора, упомянутое в вашем примере

Console.WriteLine(obj.data.shortcode.by.page_info.cursor);

Итерация для каждого имени пользователя, упомянутого в вашем примере

foreach (var edge in obj.data.shortcode.by.edges)
{
    Console.WriteLine(edge.node.id);
}

ПРИМЕЧАНИЕ. - Поскольку вы используете тип Dynami c, вы должны быть уверены, что что вы проверяете на нулевые значения, чтобы избежать "NullRefereneException".

0 голосов
/ 04 мая 2020

Ну, вы можете создать новый класс, который соответствует структуре вашего json, а затем десериализовать json в этот класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...