Получите бесплатно 4 курса для лёгкого старта работы в IT
Получить курсы бесплатно
ГлавнаяБлогЧто такое JSON: отличия и преимущества
Что такое JSON
2 060
Время чтения: 14 минут

Что такое JSON: отличия и преимущества

2 060
Время чтения: 14 минут
Сохранить статью:
Сохранить статью:

Что такое JSON? Это формат обмена данными, основанный на языке программирования JavaScript. В нем можно сохранять числа, строки, массивы. JSON легко кодируется и обрабатывается.

На что обратить внимание? Чаще всего используется в веб-приложениях, например, при передаче данных от сервера к клиенту. Ранее использовался XML, но уже с начала 2000-х годов его вытеснил JSON.

В статье рассказывается:

  1. Что такое JSON
  2. Структура JSON
  3. Принципы работы JSON
  4. Пример формата JSON
  5. Преобразования в JSON
  6. Часто задаваемые вопросы о JSON
  7. Пройди тест и узнай, какая сфера тебе подходит:
    айти, дизайн или маркетинг.
    Бесплатно от Geekbrains

Что такое JSON

Кратко — это формат обмена данными, основанный на JavaScript (JS). Чуть подробнее, то это стандартный текстовый формат для представления структурированных данных на основе элементарного синтаксиса объекта JS. Таким методом можно хранить и передавать:

  • строки;
  • массивы;
  • числа;
  • практически любые объекты.

Соглашения из JSON (JavaScript Object Notation) настолько популярны, что и другие языки также сталкиваются с этим стандартом.

Что такое JSON
Что такое JSON

У этого формата есть несколько преимуществ перед конкурентами, а именно:

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

Все завязано на особенном способе определения объектов и массивов. Этот процесс походит на создание массивов ассоциативного типа в других языках программирования.

Работа с JSON не всегда может быть осуществлена, но все же достаточно разнообразных сфер и задач, где такой способ представления структурированных данных очень актуален.

Его эксплуатируют в таких случаях, как

  • создание приложений на JS, когда в работе задействованы расширения браузеров и веб-странички;
  • сериализирование или передача информации по сети, если она была выстроена по особенной структуре;
  • возникновение потребности в обмене информацией между серверами и веб-утилитами;
  • написание web-сервисов и API для предоставления доступа к общим данным пользователю ПК.
Узнай, какие ИТ - профессии
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Павел Симонов - исполнительный директор Geekbrains
Павел Симонов
Исполнительный директор Geekbrains
Команда GeekBrains совместно с международными специалистами по развитию карьеры подготовили материалы, которые помогут вам начать путь к профессии мечты.
Подборка содержит только самые востребованные и высокооплачиваемые специальности и направления в IT-сфере. 86% наших учеников с помощью данных материалов определились с карьерной целью на ближайшее будущее!

Скачивайте и используйте уже сегодня:

Павел Симонов - исполнительный директор Geekbrains
Павел Симонов
Исполнительный директор Geekbrains
pdf иконка

Топ-30 самых востребованных и высокооплачиваемых профессий 2023

Поможет разобраться в актуальной ситуации на рынке труда

doc иконка

Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка

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

pdf иконка

ТОП-100 площадок для поиска работы от GeekBrains

Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽

pdf 3,7mb
doc 1,7mb
Уже скачали 27968 pdf иконка

JSON формат используется во время работы с анимацией в браузерах. Еще в таком виде информационные данные отправляются на сервера от интернет-обозревателей через передачу строчки в этом формате, а также в виде параметра запросов POST или GET.

Нужно быть внимательнее, ведь упомянутый в конце пример не пользуется широкой популярностью. Более активно прибегают к использованию запросов AJAX для упрощения записи-первоисточника.

Структура JSON

Если разбирать детально, то этот формат содержит следующие типы данных:

Строка

Она является первой среди JSON данных и включает в себя символы Unicode с экранированием обратной косой чертой (\).

Выглядит это вот так:

{ «name» : «Jones» }

Число

Оно полностью соответствует формату JavaScript с плавающей запятой двойной точности.

В качестве примера можно упомянуть следующее:

{

«number_1» : 210,

«number_2» : 215,

«number_3» : 21.05,

«number_4» : 10.05

}

Логическое выражение

Оно может представляться истинным и ложным значением. Нужно помнить, что в кавычки логические выражения не заключаются, а вписываются именно как строковые значения.

Структура JSON
Структура JSON

Пример этого для наглядности:

{ «AllowPartialShipment» : false }

Нуль

Это пустое значение. Следует запомнить, что при ситуации, когда ключу не присваивается какой-либо показатель, он рассматривается как нуль.

Для примера:

{ «Special Instructions» : null }

Объект

JSON объект — определенный набор пар имен или значений. Они заключены между фигурными скобками {}. При этом ключи являются уникальными строками, которые разделяются запятой.

В качестве примера представлено следующее:

{

«Influencer» : { «name» : «Jaxon» , «age» : «42» , «city» , «New York» }

}

Массив

Это некая упорядоченная коллекция значений. В JSON его значения должны относиться к одному из перечисленных типов, а именно: строка, число, объект, массив, логическое выражение или нуль.

Итак, наглядный пример:

{

«Influencers» : [

{

«name» : «Jaxon»,

«age» : 42,

«Works At» : «Tech News»

}

{

«name» : «Miller»,

«age» : 35

«Works At» : «IT Day»

}

]

}

Принципы работы JSON

Расскажем о них и опишем примерную структуру того, как происходит обработка данных, если зафиксировано обращение «клиент—сервер—клиент». Такой принцип задействуется в случае передачи данных с сервера в браузер по запросу пользователя. К слову, это и есть главное предназначение JSON.

  • Запрос на сервер поступает сразу же после одного клика от человека за монитором. Для этого пользователю нужно захотеть открыть и прочесть элемент описания чего-либо, например.
  • Сам запрос генерируется при помощи AJAX с использованием JavaScript и программного сценарного файла PHP. Если сценарий запускается на сервере, то поиск данных будет выполнен наверняка.
  • Программный файл PHP производит процесс запоминания всей информации с сервера, формируя строку кода.
  • JavaScript фиксирует её, восстанавливает до нужного состояния и демонстрирует все нужные человеку данные на страничке экрана, что и требовалось.
Принципы работы JSON
Принципы работы JSON

Весь описанный процесс происходит за доли секунды. Все благодаря JavaScript, встроенному в браузер. Если JS не работает или вообще отсутствует, то процесс не произойдет, результата не будет.

Пример формата JSON

Обычно данные сохраняют в файле с таким же расширением. Для наглядного примера можно создать прямо сейчас файл employee.JSON с атрибутами сотрудника (ключи и значения).

{

«name»: «Aleix Melon»,

«id»: «E00245»,

«role»: [«Dev», «DBA»],

«age»: 23,

«doj»: «11-12-2019»,

«married»: false,

«address»: {

«street»: «32, Laham St.»,

«city»: «Innsbruck»,

«country»: «Austria»

},

«referred-by»: «E0012»

}

Дарим скидку от 60%
на курсы от GeekBrains до 05 мая
Уже через 9 месяцев сможете устроиться на работу с доходом от 150 000 рублей
Забронировать скидку

Итак, теперь в этом примере нужно дать расшифровку всем упомянутым атрибутам:

  • name— это имя сотрудника. Значение в строковом формате (String). При написании возводится в двойные кавычки;
  • id— это уникальный идентификатор сотрудника. Он также указывается в формате отдельной строки;
  • role— это роли, закрепленные за сотрудниками в организации. Количество ролей не ограничено строго, а значит можно и нужно перечислить такие данные в формате массива (Array);
  • age— это возраст сотрудника на данный момент, указанный в числовом значении (Number);
  • doj — это дата, когда работник был принят в штат. Так как перед нами именно дата, то она добавляется в удвоенных кавычках и обрабатывается как строка;
  • married— информация о том, какое семейное положение у сотрудника (замужем/женат/ не замужем/не женат). В качестве ответа на вопрос может быть прописано да/нет (иначе true или false), а потому это логический формат (Boolean);
  • address— адресные данные сотрудника. Информация может включать в себя несколько ответов (частей): улица, город, страна, индекс и так далее. Это лучше представить в виде объекта (Object с парами «ключ—значение»);
  • referred-by— идентификатор сотрудника, порекомендовавшего этого человека на должность в компанию. Если работник заступил на службу именно по рекомендации, то атрибут будет иметь весомое значение. В любой другой ситуации поле следует не заполнять информацией, то есть null.

Затем необходимо создать определенный набор данных по сотрудникам в формате JSON. При добавлении сразу нескольких записей о разных людях нужно прописывать информацию о них в квадратных скобках […].

[

{

«name»: «Masha Gorina»,

«id»: «E01458»,

«role»: [«Dev», «DBA»],

«age»: 32,

«doj»: «04-07-2020»,

«married»: false,

«address»: {

«street»: «48, Jump St.»,

«city»: «Wattens»,

«country»: «Austria»

},

«referred-by»: «E0012»

},

{

«name»: «Pol Garadas»,

«id»: «E96785»,

«role»: [«HR»],

«age»: 51,

«doj»: «17-01-2011»,

«married»: true,

«address»: {

«street»: «45, Rose Lane.»,

«city»: «Alexandria»,

«country»: «USA»

},

«referred-by»: null

}

]

Необходимо остановиться на одном пункте. Речь о значении атрибута referred-by для сотрудника Pol Garadas. Как видно, значение не заполнено. Иными словами, никто не давал ему рекомендаций, потому и пусто.

Преобразования в JSON

Получая «сырую» строку кода, человеку нужно преобразовать её в объект своими силами. Если нужно отправить экземпляр класса JavaScript по сети, то следует преобразовать его в JSON (строку) перед пересылкой. Об этих двух проблемах наслышаны в веб-разработке, а потому встроенный объект JSON доступен в браузерах, которые содержат следующие два метода:

  • parse(): принимает строку JSON в качестве параметра и возвращает соответствующий экземпляр класса JavaScript.
  • stringify(): принимает объект в качестве параметра и возвращает эквивалентную строковую JSON строку.
Только до 6.05
Скачай подборку материалов, чтобы гарантированно найти работу в IT за 14 дней
Список документов:
ТОП-100 площадок для поиска работы от GeekBrains
20 профессий 2023 года, с доходом от 150 000 рублей
Чек-лист «Как успешно пройти собеседование»
Чтобы получить файл, укажите e-mail:
Введите e-mail, чтобы получить доступ к документам
Подтвердите, что вы не робот,
указав номер телефона:
Введите телефон, чтобы получить доступ к документам
Уже скачали 52300

Наглядно первый метод в работе можно рассмотреть на примере heroes-finished-JSON-parse.html (смотри исходный код) — это то же самое, что и в примере, созданном до этого, за исключением того, что установлен XHR для возврата сырого JSON текста, затем используется parse() для преобразования его в фактический объект JavaScript. Ключевой фрагмент кода располагается тут:

request.open(«GET», requestURL);

request.responseType = «text»; // now we’re getting a string!

request.send();

request.onload = function () {

var superHeroesText = request.response; // get the string from the response

var superHeroes = JSON.parse(superHeroesText); // convert it to an object

populateHeader(superHeroes);

showHeroes(superHeroes);

};

Абсолютно ясно, что stringify() работает обратным путем. Для демонстрации работы придется набрать в консоль JavaScript браузера друг за другом строки:

var myJSON = { name: «Chris», age: «38» };

myJSON;

var myString = JSON.stringify(myJSON);

myString;

Итак, создается объект JavaScript, затем проверяется его содержание, а потом он преобразовывается в строку JSON при помощи stringify(). При этом сохраняется возвращаемое значение в новой переменной. Завершается все еще одной проверкой.

Преобразования в JSON
Преобразования в JSON

Часто задаваемые вопросы о JSON

Идентичны ли объекты JS и JSON?

Эти сущности не являются чем-то идентичным. Формат данных JSON создавался на базе объектной структуры JavaScript. Это первое и последнее сходство.

Объекты в JavaScript:

  • имеют методы;
  • допускается добавление ключей без кавычек;
  • разрешены комментарии;
  • являются отдельными сущностями.

Что такое «Unexpected token u in JSON at position 1»?

Понятно, что при обработке может появиться ошибка JSON, это не что-то необычное. Если так случилось, то нужно проверить на корректность все данные. Бывает, что даже один символ все рушит. В процессе проверки на правильность можно пользоваться JSON Linter.

Какие языки программирования поддерживаются JSON?

Было задумано так, что он является подмножеством языков JavaScript. Сейчас же практически каждый язык программирования поддерживает JSON из-за его независимого от языка формата данных. На официальном сайте можно найти перечень его главных библиотек, которые доступны на различных языках программирования. Их допустимо использовать для анализа и генерации JSON.

Он представляет собой текстовый формат обмена данными. Хотя JSON и был основан на JavaScript, но может использоваться в любом языке программирования. Легко читается как человеком, так и автоматикой. Часто используется в REST API.
Оцените статью
Рейтинг: 5
( голосов 4 )
Поделиться статьей
Добавить комментарий

Сортировать:
По дате публикации
По рейтингу
До конца акции осталось
0 дней 00:00:00
Дарим скидку 64% на обучение «Разработчик»
  • Получите новую профессию с гарантией трудоустройства
  • Начните учиться бесплатно, 3 месяца обучения в подарок
Забронировать скидку на обучение
Забрать подарок

Получите подробную стратегию для новичков на 2023 год, как с нуля выйти на доход 200 000 ₽ за 7 месяцев

Подарки от Geekbrains из закрытой базы:
Осталось 17 мест

Поздравляем!
Вы выиграли 4 курса по IT-профессиям.
Дождитесь звонка нашего менеджера для уточнения деталей

Иван Степанин
Иван Степанин печатает ...