-
Notifications
You must be signed in to change notification settings - Fork 0
Json Task
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, в отличие от остальных типов значений.