Время прочтения: 2 мин.

JSON — простой, основанный на использовании текста, способ хранить и передавать структурированные данные. Сегодня рассмотри, как попросить Json у сайта и что с ним делать?

Сначала несколько определений, позаимствованных мною с просторов Интернета:

Сериализация — это процесс перевода структуры данных в последовательность битов, или же в другую структуру данных, которую удобно хранить, передавать (этот процесс в статье подробно мы не будем рассматривать)

Десериализация — это обратный процесс. Процесс преобразования сериализованных данных в структуру данных.

Теперь рассмотрим практический пример:

На первом этапе в студии из NuGet скачиваем — Newtonsoft.Json, указываем в поиске — Json, находим — Newtonsoft.Json (его мы и будем использовать)

Затем прописываем — using Newtonsoft.Json.Linq;

Теперь нам необходимо найти страницу, с которой берем json (то есть берем страницу, где только json, и дальше выбираем один из вариантов):

  1. Для тех, кто старается сделать быстро: копируем весь текст json со страницы, переходим на специальный сайт, который экономит наше время тем, что строит за нас классы (например — http://json2csharp.com/#), вставляем json на этом сайте. И одним нажатием на кнопку – получаем результат (его и копируем в студию).

Как можно улучшить выгрузку:

  • Проверить страницы с json и дописать переменные, если их не хватает
  • Проверить название классов (часто встречается, что несколько классов с одним именем, если разные страницы разбираем в одной программе)

2. Для тех, кто желает погрузиться в разработку:

создаете открытый класс

public class Data
       {
}

Делаете описание класса с наймингами, как в Json и получаем то же самое, что и в первом случае:

       {
        public int a { get; set; }
        public string b { get; set; }
        public double c { get; set; }
        public List<другойКласс> d { get; set; } 
}

3. Если информации не много, то классы можно не использовать.

Дальше получаем текст и вставляем его в объект jsona:

JObject jObject = JObject.Parse(Text);

1. Если выбрали 3, то можно указать путь и конвертнуть в тот тип данных, который нужен:

Convert.ToInt16(jObject["data"]["data2"])

2. Если выбрали 1 или 2 вариант, то мы производим десериализацию json в list,

List<Data> list = jObject.ToObject<List<Datum>>();
Кстати, тут тоже можно указывать путь: jObject["data"]["data2"].ToObject<List<DeveloperAll>>();

Вот такими методами мы «подружили» Json и C#.