C # как читать определенные свойства без знания длины - PullRequest
0 голосов
/ 28 марта 2019

Я сделал GET для API nuget, чтобы получить определенные данные о пакете (в моем случае stylecop).Звонок работает, и я успешно получаю JSON в результате.Однако JSON имеет сложную структуру, и мне нужно прочитать все элементы.

Это вызов API, который я сделал, он работает.Это должно показать вам json, который я пытаюсь получить данные: https://api.nuget.org/v3/registration3/stylecop.analyzers/index.json

Красная область содержит объекты, которые я хочу прочитать.Всего 43 предмета.Каждый из этих элементов имеет свойство commitId.Я хочу зачитать все 43 свойства commitId из каждого элемента, чтобы сохранить их в списке.

json screenshot https://imgur.com/a/kNGytom

dynamic dynJson = JsonConvert.DeserializeObject(x);
   foreach (var item in dynJson)
                    {
                        Console.WriteLine(item.commitid);
                    }

Это то, что я пробовал, но я незнать, как получить доступ ко 2-му слою предметов

1 Ответ

0 голосов
/ 28 марта 2019

Я вижу, что JSON должен быть довольно простым для создания классов C #, которые вы можете десериализовать.Вы можете использовать такой инструмент, как jsonutils.com, чтобы сгенерировать модель C # из вашего примера строки JSON и, возможно, настроить ее так, чтобы она лучше напоминала вашу структуру JSON.

Затем вы можете десериализовать ее в объект C #, используя:

var yourObject = JsonConvert.DeserializeObject<YourJsonModel>(jsonString);

и доступ к любому желаемому уровню через массивы / списки объектов в объекте C #.

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