Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/29: Рейтинг темы: голосов - 29, средняя оценка - 4.72
94 / 67 / 23
Регистрация: 22.09.2013
Сообщений: 626

Десериализация JSON

05.06.2017, 15:31. Показов 5959. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех.
Пытаюсь в C#. Решил попробовать в запросы и API. Начал с VK. Ну и тут сразу проблема.
JSON
1
{"response":[{"id":210700286,"first_name":"Lindsey","last_name":"Stirling"}
Есть строка, как ее десериализавать и получить ID.
C#
1
2
3
4
5
6
7
8
9
10
11
public class dezJson
    {
        public int id { get; set; }
        public string first_name { get; set; }
        public string last_name { get; set; }
    }
 
    public class RootObject
    {
        public List<dezJson> response { get; set; }
    }
С помощью JSON генератора сделал класс.
Далее в коде писал :
C#
1
dezJson dez = JsonConvert.DeserializeObject<dezJson>(response.ToString());
Далее пытался как в примерах из гугла перебирать с помощью цикла foreach, но ничего не вышло.
Помогите познать. Буду благодарен)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.06.2017, 15:31
Ответы с готовыми решениями:

Десериализация JSON из ВК без JSON.NET
JSON: { &quot;response&quot; : } Мой код: string json = тут текст из спойлера вначале; JavaScriptSerializer jser = new...

Десериализация json
Всем привет, следующая проблема возникла, имеется следующий json: {&quot;data&quot;: {&quot;user&quot;: {&quot;edge_followed_by&quot;: {&quot;count&quot;: 526,...

Десериализация JSON
Есть JSON строка, получаю её по http запросу public class Account { public string Name { get; set;...

6
0 / 0 / 2
Регистрация: 05.06.2017
Сообщений: 6
05.06.2017, 15:56
Лучший ответ Сообщение было отмечено zme9 как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class dezJson
    {
        [JsonProperty(PropertyName = "id")]
        public int id { get; set; }
        [JsonProperty(PropertyName = "first_name")]
        public string first_name { get; set; }
        [JsonProperty(PropertyName = "last_name")]
        public string last_name { get; set; }
    }
 
    public class RootObject
    {
        [JsonProperty(PropertyName = "response")]
        public ICollection<dezJson> response { get; set; }
    }
а если так попробовать?


JSON
1
{"response":[{"id":210700286,"first_name":"Lindsey","last_name":"Stirling"}
в исходном json-e ещё скобочек на конце не хватает, но это должно быть просто опечатка
0
94 / 67 / 23
Регистрация: 22.09.2013
Сообщений: 626
05.06.2017, 16:13  [ТС]
Фщя, Да, там опечатка.
Я пытаюсь делать с помощью Newtonsoft.Json;
Я не понимаю как мне перебирать в цикле.
0
0 / 0 / 2
Регистрация: 05.06.2017
Сообщений: 6
05.06.2017, 16:29
C#
1
2
3
4
5
6
7
8
            var json = "{"response":[{"id":210700286,"first_name":"Lindsey","last_name":"Stirling"}]}";
 
            RootObject dez = JsonConvert.DeserializeObject<RootObject>(json);
 
            foreach(var person in dez.response)
            {
                MessageBox.Show(person.id.ToString());
            }
0
94 / 67 / 23
Регистрация: 22.09.2013
Сообщений: 626
05.06.2017, 16:58  [ТС]
Фщя, Спасибо, чуть разобрался.
Но появилась еще одна проблема. Не выводит ID
Класс:
C#
1
2
3
4
5
6
7
8
9
10
11
public class Response
    {
        public string id_name { get; set; }
        public string first_name { get; set; }
        public string last_name { get; set; }
    }
 
    public class RootObject
    {
        public List<Response> response { get; set; }
    }
Код
C#
1
2
3
4
5
6
RootObject dez = JsonConvert.DeserializeObject<RootObject>(response.ToString());
               foreach(var p in dez.response){
                   Console.WriteLine(p.id_name);
               }
              
                Console.Read();
Выводит last и first name, но не выводит ID, вместо него выводит 0.

Добавлено через 4 минуты
Разобрался.
0
0 / 0 / 2
Регистрация: 05.06.2017
Сообщений: 6
05.06.2017, 17:01
Цитата Сообщение от zme9 Посмотреть сообщение
public string id_name { get; set; }
в строке json нет свойства id_name, там просто id

нужно исправить класс таким образом
C#
1
2
3
4
5
6
public class Response
    {
        public string id { get; set; }
        public string first_name { get; set; }
        public string last_name { get; set; }
    }
либо использовать атрибут
C#
1
2
3
4
5
6
7
8
public class Response
    {
        
        [JsonProperty(PropertyName = "id")]
        public string id_name{ get; set; }
        public string first_name { get; set; }
        public string last_name { get; set; }
    }
0
94 / 67 / 23
Регистрация: 22.09.2013
Сообщений: 626
05.06.2017, 17:04  [ТС]
Фщя, там нужно uid)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.06.2017, 17:04
Помогаю со студенческими работами здесь

Десериализация JSON
не пойму что он хочет впервые сталкиваюсь с такой ошибкой &quot;Элемент &quot;:item&quot; содержит данные из типа данных, сопоставляемого с именем...

Десериализация json
Здравствуйте. Есть ответ от сервера в формате json такого вида: { ...

Десериализация Json
Есть следующий код JSON помогите сделать класс. response: { count: 146, items: , post_source: { type: 'vk' }, comments: {

Json, десериализация
Здравствуйте, помогите пожалуйста. Пытаюсь десериализовать Json (использую System.Runtime.Serialization), вот такого вида (продуктов может...

Десериализация JSON'a
Добрый день! Ищу помощи) Имею вот такой JSON { &quot;Classes&quot;: }


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru