@6a6ajka

JSON в c#, как спарсить элементы?

Изучаю этот язык первый день, думал будет все просто как в php, но чот не так.
В общем, для теста решил попробовать сделать простого бота.
Но в итоге вышло так, что я не могу ничего вытянуть из ответа сервера вк (json кода).
Каким образом я могу реально это реализовать?
В качестве примера:
{"response":1}
Много чего гуглил, но точной проблемы почему у меня не получается - не нашел.
Мб базы не те скачал.
Предложите рабочий метод.
З.ы. у меня была 2010 года версия, скачаю 2013.
  • Вопрос задан
  • 1232 просмотра
Решения вопроса 2
arxont
@arxont
C# программист
Как выше уже сказали - используйте библиотеку Newtonsoft.Json.
Дальше есть два способа
(для примера добавил ещё параметр Name и тестовая строка выглядит так -
string testJson = "{'name':'Test','response':1}";
1. Через класс. Создаём класс, со списком параметров и делаем
static void Main(string[] args)
        {
            string testJson = "{'name':'Test','response':1}";

            var result = JsonConvert.DeserializeObject<MyClass>(testJson);

            Console.WriteLine($"Name: {result.Name}, Response: {result.Response}");
        }

        class MyClass
        {
            public string Name { get; set; }
            public int Response { get; set; }
        }


2. Есть ещё способ с использованием dynamic
static void Main(string[] args)
        {
            string testJson = "{'name':'Test','response':1}";

            dynamic resultDynamic = JObject.Parse(testJson);

            Console.WriteLine($"Name: {resultDynamic.name}, Response: {resultDynamic.response}");
        }
Ответ написан
Комментировать
using Newtonsoft.Json;
...
var result = JsonConvert.DeserializeObject<T>(json);


Где T - класс, представляющий ваш объект JSON; json - собственно, строка JSON- формата на входе, которую нужно представить в виде объекта.

p/s Любезно воспользовался источником на stackoverflow. Это было быстрее, чем написать приведенный выше код :)))

p/p/s Объект, запрошенный в качестве примера, будет выглядеть так:
class MyClass
{
    public int Response { get;set; }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@BashkaMen
C# программист
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы