Skip to content

Json Task

abogdanov85 edited this page Feb 6, 2023 · 4 revisions

Формат JSON

Что это такое?

Json – это формат файлов. Вам наверняка знакомы другие распространенные форматы файлов: doc, xls, txt, pdf. Формат json тоже является очень распространенным. Его название произносится как имя «Джейсон».

Для чего это нужно?

Файлы формата Json используются для обмена данными в Интернете и не только. Например, с помощью таких файлов ваш браузер обменивается данными с сайтами, на которые вы заходите.

Как это устроено?

Формат Json является текстовым. Это значит, что такие файлы, можно открыть, прочитать и отредактировать в любом текстовом редакторе (в том числе, например, в Notepad или Microsoft Word).

Формат Json представляет собой последовательность из пар «Свойство: значение свойства». Например, если бы мы захотели описать высокого голубоглазого мужчину в формате Json, то наше описание могло бы выглядеть так:

Пример 1
{
	"Пол": "мужской",
	"Рост": "высокий",
	"Цвет глаз": "голубой"
}

В этом примере описаны три свойства, и у каждого из них имеется одно значение.

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

Хочу больше подробностей

Вложенные свойства

В Примере 1 все три свойства находятся на одном уровне, но в случае более сложных объектов свойства могут быть вложены друг в друга и образовывать многоуровневую структуру. Добавим к описанию нашего мужчины его адрес. Так как свойство «Адрес» само состоит из нескольких компонентов (свойств), то наша структура в формате Json в таком случае станет многоуровневой:

Пример 2
{
	"Пол": "мужской",
	"Рост": "высокий",
	"Цвет глаз": "голубой",
	"Адрес": {
		"Улица": "Тверская",
		"Дом": 5,
		"Квартира": 10,
		"Город": "Москва",
		"Индекс": 101101
	}
}

Значения-списки

В примерах выше у каждого свойства ровно одно значение. Но свойство в формате Json может иметь и несколько значений. В таком случае после двоеточия идет список значений свойства, разделенный запятыми. Этот список заключается в квадратные скобки. Дополним описание нашего мужчины списком его телефонных номеров:

Пример 3
{
	"Пол": "мужской",
	"Рост": "высокий",
	"Цвет глаз": "голубой",
	"Адрес": {
		"Улица": "Тверская",
		"Дом": 5,
		"Квартира": 10,
		"Город": "Москва",
		"Индекс": 101101
	},
	"Номер телефона": [
		"+74951234567",
		"+79261234567"
	]
}

Типы значений свойства

В предыдущих примерах не все значения свойств записаны в кавычках, и это неслучайно. Свойства «Дом», «Квартира» и «Индекс» имеют в качестве значений не текстовые строки, а числа, поэтому они записываются без кавычек. Остальные свойства в нашем примере имеют в качестве значений текстовые строки, поэтому они записаны в кавычках, как и названия самих свойств, которые в формате Json могут быть только в виде текстовых строк.

Кроме текстовых и числовых значения свойств могут быть логическими — true или false (Да или Нет). Добавим к нашему примеру о мужчине логическое свойство «Женат» со значением true (Да):

Пример 4
{
	"Пол": "мужской",
	"Рост": "высокий",
	"Цвет глаз": "голубой",
	"Адрес": {
		"Улица": "Тверская",
		"Дом": 5,
		"Квартира": 10,
		"Город": "Москва",
		"Индекс": 101101
	},
	"Номер телефона": [
		"+74951234567",
		"+79261234567"
	],
	"Женат": true
}

В примере 4 есть все возможные типы значений свойств формата Json. Перечислим их:

  • Текстовая строка
  • Числовое выражение
  • Логическое выражение
  • Список
  • Запись

Списком задано свойство «Номер телефона», поскольку номеров у нашего мужчины несколько. А записью задано свойство «Адрес», поскольку это свойство распадается на несколько вложенных свойств. Заметим, что запись сама является полноценной единицей формата Json, в отличие от остальных типов значений.