Я вижу пару проблем с тем, что у вас есть.Первый - это структура классов, в которые вы должны десериализовать данные json.Написание классов для этого вручную действительно утомительно и подвержено ошибкам, и поэтому я обычно хотел бы использовать этот сайт , чтобы подключить json и получить нужные мне классы и переименовать их по мере необходимости.Затем я пошел бы и нашел api docs для данных, чтобы заполнить пробелы в классах, которых у данных просто не было.
После этого вам нужно всего лишьдесериализовать один экземпляр класса корневых объектов, который у вас теперь есть, а не их список, что-то вроде:
RootObject topics = JsonConvert.DeserializeObject<RootObject>(json);
Еще одно замечание: когда вы десериализуете свои данные, в своем кодевы в настоящее время объявляете новую локальную переменную с именем topics
, которая скрывает вашу переменную-член, которая также называется topics
, в этой конкретной области, и поэтому, если вы когда-нибудь осмотрите эту переменную-член, вы увидите, что она не будетданные в нем.Вы не хотите объявлять новую переменную там, вы просто хотите использовать существующую переменную-член, поэтому вместо предыдущей строки вы просто захотите сделать:
topics = JsonConvert.DeserializeObject<RootObject>(json);
Или даже this.topics
если вы хотите быть действительно явным и ясным о том, откуда эта переменная.