Работа с JSON на C#. Часть 1. Структура данных.
C#, как я уже неоднократно повторяю, часто используется в вебе. Также в вебе очень часто встречается JSON - формат передачи данных. Он очень удобен, ведь намного легче, быстрее и структурированее. Если вы работаете в вебе или просто хотите использовать JSON для хранения информации (пусть даже офлайн) то эти статьи будут вам очень кстати.
Что такое JSON?
JSON (JavaScript Objective Notation) - это формат передачи информации, такой как XML. Он самый распространенный в интернете, ведь сам по себе связан с самым популярным ЯП для веба и вообще - JavaScript. Примеры применения - передача информации с базы данных. Это, наверное, самый распространенный сценарий использования JSON. Он используется такими сервисами как ВКонтакте, Телеграмм, некоторые из сервисов Google, многие сайты Microsoft и др.
Чем он лучше XML?
XML довольно громоздкий (см. рисунок ниже) и не столь быстрый. Чтобы написать что-нибудь на XML надо постараться, а если данных много? У JSON такого нет. Он лаконичный и чистый. Также в нем можно даже хранить фотографии, гиф-изображения и прочее медиа!
Структура
Как видите в верхнем рисунке, структура у JSON очень даже понятна человеческому глазу. Если чтобы понять XML тебе надо немного "осмотреться", то с JSON ты определишься сразу. (ну, это субъективщина, конечно) В JSON есть несколько типов переменных:
- Обычные переменные - просто данные с идентификатором (или именем) как и обычные, знакомые нам переменные. пишутся как
[имя] : [значение]
- Массивы - это просто массивы с несколькими данными, без названий. В программировании, как ни странно, их аналогами являются массивы. Пишутся как
[имя] { [1], [2], [3] }
- Объекты - это множество массивов и переменных. (Его вы могли наблюдать в Телеграмм API) В программировании их аналогами являются коллекции и объекты. Пишется как
[имя] [ [а] { [1], [2], [3] }, [б] { [4], [5] }, [в]:[6] ]
JSON может быть как в строчном формате, так и в "красивой печати" (канонизированном/запарсенном виде) Для передачи или хранении, конечно, используется строчный, ведь он занимает мало места и может поместится в одну строковую переменную без переходов на новую строчку. (\n
не в счет)
Вот пример строчного формата с информацией о мужчине по имени Андрей:
{ "Name":"Andrei", "Gender":"Male", "Age":23, "Hobbies":[{ "Sports": { "Tennis":true, "Football":false, "Basketball":false }, "Design":true, "Coding": { "Freelance":false, "Outsourcing":true, "Opensourcing":true }}]}
Вот то же самое, но в "красивой печати" (канонизированном) формате:
{ "Name":"Andrei", "Gender":"Male", "Age":23, "Hobbies":[ { "Sports":{ "Tennis":true, "Football":false, "Basketball":false }, "Design":true, "Coding":{ "Freelance":false, "Outsourcing":true, "Opensourcing":true } } ] }
Как видите они отличаются лишь отсутствием переходов на следующую строчку, однако для компьютера это огромная разница! Если человеческий мозг может легко определить куда поставить переход, даже если там имеется ошибка, и даже не вставляя их использовать данные, хоть и с трудом, то компьютеру без парсинга (т.е. вставка этих самых переходов по определенному алгоритму) этого сделать не получиться.
Просмотр JSON
А что делать человеку, если ему дали JSON в строковом формате и ему для использования необходимо его пропарсить? Для этого есть много сервисов. Про один из них я уже говорил в одном из прошлых уроков по созданию бота - это JSON Parser Online от Olivier Cuenot. Он, как я и многие другие считаю, самый простой и легкий парсер. Просто вписываешь, а он показывает. Также он выводит ошибки. Всё гениальное - просто! (у этого сервиса также есть и вторая, бета версия - вот она, она включается кнопкой "Try our beta!" в обычной версии)
Также в браузерах есть свои расширения для автоматического показа JSON на странице в "красивой печати" (канонизированном). Для разных браузеров они разные. Однако FireFox отличился от всех тем, что у него автоматически есть эта функция. Не зря же FireFox считают браузером для веб-разработчиков! (сама Mozilla этого и добивалась) Вот скриншот как он выглядит - без лишних деталей и при этом функционально.
Конец
На этом всё! В следующей статье я покажу несколько способов парсинга JSON с C#, так что если вам понравилась данная статья, хотите знать больше о JSON или просто вам нужно пропарсить данный формат, то обязательно напишите комментарий и подпишитесь на мой канал Телеграмм! (если этого ещё не сделали, конечно же) Удачи!