Как из object сделать string



Как из object сделать string
Как из object сделать string

c#_json

Краткий экскурс

Фактически каждый программист рано (или поздно) сталкивается с сериализацией.

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

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

Подобные вещи часто встречаются при обмене данными между клиентом и сервером, между двумя клиентами (P2P). В общем много где встречается. Моё первое знакомство было при работе с API одного из российских сервисов.

API — это Application Programming Interface. То есть прослойка между функциональной частью какого-либо программного обеспечения и вашего программного обеспечения.

Например — Вам хочется написать программу, которая будет отображать погоду в Москве. Вам не хочется устанавливать свои метеодатчики и  другое оборудование.

Допустим, что есть сервис «Погода в России», который имеет свой API. И данный сервис на бесплатно (или же платно) дает доступ к нему вашим приложениям. Конечно — всегда можно написать парсер нужной страницы и выводить информацию. Но любые изменения в содержимом страницы могут привести к тому, что парсер придется тоже обновлять.

Глупо говорить о преимуществах API по сравнению с парсингом. Это скорость, удобство работы, а также, очень часто, более расширенный функционал.

Так что если сервис предлагает API — глупо отказываться.

 

Сериализация

В данном примере мы рассмотрим библиотеку «Newtonsoft.Json» для работы с JSON. Почему её? Потому что она удобная.

Для начала её нужно добавить в references.

Для этого нужно нажать ПКМ на References и выбрать «Добавить ссылку…».

referencesAdd

 

Тут можно найти его в поиске (если уже использовали), скачать его через NuGet, или же просто добавить как обычную библиотеку через «Обзор».

referencesAdd2

На всякий случай оставлю библиотеку тут: скачать Newtonsoft.Json.dll.

Теперь можно приступить к коду.

Для начала нужно добавить NameSpace библиотеки в код. Для этого добавим в using следующую строку:

Теперь нужно описать класс, который будем сериализовать и десериализовать:

Будем считать, что пишем программу для ведения учета домашней музыкальной коллекции. Базовый класс — MyMusic, вспомогательный класс — Track.

Теперь добавим несколько треков:

Теперь сериализуем этот класс и выведем на RichTextBox:

В результате чего мы должны получить такую строку на выходе:

 

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

Теперь нужно эту строку десериализовать обратно в класс. Для этого, естественно, должен быть объявлен соответствующий класс, иначе программа не сможет ничего десериализовать.

Сам код десериализации следующий:

Теперь выведем на экран содержимое десериализованного JSON’а:

На экран должно вывестись следующий текст:

Как видите — с JSON очень удобно работать. Но есть одна маленькая хитрость, которая сильно упростит вашу жизнь при десериализации. Чтобы вам вручную не создавать огромные классы анализируя пример JSON’а, который вам возвращает API — можно его сгенерировать автоматически. В этом вам поможет сайт Json2CSharp. Просто вставьте в него строку с JSON, которую вы получили из API и он сгенерирует вам необходимые классы. Основной класс будет всегда RootObject (в примере был MyMusic), но никто не мешает вам его переименовать в нужный.

 

Скачать весь проект в 7Z-архиве.

Пароль к архиву: котодомик.рф




Как из object сделать string

Как из object сделать string

Как из object сделать string

Как из object сделать string

Как из object сделать string

Как из object сделать string

Как из object сделать string

Как из object сделать string

Как из object сделать string

Как из object сделать string

Как из object сделать string

Как из object сделать string

Похожие новости:


  • Пепсин для приготовления сыра в домашних условиях
  • Декоративные заборы из реек своими руками
  • Где найти бумагу для книг
  • Подарки мальчикам на пять лет
  • Дерево для фотосессии как сделать