Начало работы
Введение
JSON - это легкий текстовый открытый стандарт, предназначенный для обмена данными в человекочитаемом виде.
- JSON расшифровывается как JavaScript Object Notation.
- JSON легко читать и писать.
- JSON - это формат обмена данными, не зависящий от языка.
- Расширение имени файла JSON -
.json
. - Тип интернет-носителя JSON -
application/json
. {.marker-round}
Примеры
``json { “name”: “Jason”, “age”: 39, “height”: 1.92, “gender”: “M”, “зарплата”: 70000, “женат”: true, “дети”: [ {“name”: “Том”, “возраст”: 9, “gender”: “M”}, { “name”: “Ava”, “age”: 7, “gender”: “F”} ] }
### Типы
| Тип | Описание |
|-----------|-----------------------------------------|
| `Число` | Двойная точность с плавающей точкой |
| `Строка` | Серия символов |
| `Булево` | `истина` или `ложь` |
| `Массив` | Упорядоченная последовательность значений |
| `Value` | Строка, число, булево, null и т.д.|
| `Object` | Неупорядоченная коллекция пар ключ/значение |
| `null` | Null или Empty |
### Строка {.row-span-3}
| | |
|------|----------------------------|
| `\"` | Двойная кавычка |
| `\\\` | Обратная косая черта |
| `\/` | Прямая косая черта |
| `\b` | Backspace |
| `\f` | Форма подачи |
| `\n` | Новая строка |
| `\r` | Возврат каретки |
| `\t` | Табуляция |
| `\u` | После четырех шестнадцатеричных цифр |
#### Примеры
``json
{
"url": "https://cheatsheets.zip",
"msg" : "Привет,\n\"CheatSheets.zip\",
"intro": "Делимся краткими справочниками и шпаргалками для разработчиков."
}
Недопустимая строка
``json { “foo”: ‘bar’ }
Должны быть разделены двойными кавычками
### Число {.row-span-2}
| Тип | Описание |
|------------|----------------------------------------|
| `Integer` | Цифры 1-9, 0 и положительные или отрицательные |
| `Дробь` | Дроби, например 0.3, 3.9 |
| `Exponent` | Экспонента, например, e, e+, e-, E, E+, E |
#### Примеры
``json
{
"положительный" : 12,
"отрицательный" : -1,
"дробь" : 10.25,
"экспонента" : 1.0E+2,
"zero" : 0
}
Неверное число
``json { “foo”: 0xFF }
В JSON можно использовать только десятичные литералы
### Объекты
``json
{
"color": "Purple",
"id": "210",
"composition": {
"R": 70,
"G": 39,
"B": 89
},
"empty_object": {}
}
Несколько пар ключ/значение, разделенных запятой
Массивы
``json [1, 2, 3, 4, 5]
Начинается с `[` и заканчивается `]`.
### Массив объектов
``json
{
"children": [
{ "name": "Джимми Смит", "возраст": 15},
{ "name": "Сэмми Соса", "возраст": 12}
]
}
Объект массивов
``json { “attributes”: [“a1”, “a2”], “methods”: [“getter”, “setter”], “empty_array”: [] }
### Двумерный массив
``json
{
"my_sequences": [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9, 0],
[10, 11]
]
}
Объект объектов
``json { “Mark McGwire”: { “hr”: 65, “avg”: 0.278 }, “Сэмми Соса”: { “hr”: 63, “avg”: 0.288 } }
### Вложенные
``json
{
"Jack": {
"id": 1,
"name": "Franc",
"salary": 25000,
"hobby": ["a", "b"],
"location": {
"страна": "A", "city": "A-A"
}
}
}
Доступ к JSON на JavaScript
Access Object
``javascript let myObject = { “name”: “Jason”, “last”: “Doe”, “age”: 39, “gender”: “M”, “salary”: 70000, “женат”: true };
----
| | |
|--------------------|-----------|
| `myObject.name` | "Джейсон" |
| `myObject["name"]` | "Jason" |
| | `myObject.age` | 39 |
| `myObject.other` | undefined |
| `myObject[0]` | undefined |
### Доступ к вложенным {.row-span-2}
``javascript
let myObject = {
"ref": {
"name": 0,
"last": 1,
"age": 2,
"gender": 3,
"зарплата": 4,
"женат": 5
},
"jdoe": [
"Jason",
"Doe",
39,
"M",
70000,
true
],
"jsmith": [
"Tom",
"Smith",
42,
"F",
80000,
true
]
};
myObject.ref.age |
2 |
myObject["ref"]["age"] |
2 |
myObject.jdoe |
[“Джейсон”, “Доу”, 39 …] |
myObject.jsmith[3] |
|
myObject[1] |
undefined |
Доступ к массиву объектов
``javascript let myArray = [ { “name”: “Jason”, “last”: “Doe”, “age”: 39, “gender”: “M”, “salary”: 70000, “замужем”: true }, { “name”: “Tom”, “last”: “Smith”, “age”: 42, “gender”: “F”, “salary”: 80000, “замужем”: true }, { “имя”: “Amy”, “last”: “Burnquist”, “age”: 29, “gender”: “F”, “salary”: 60000, “замужем”: false } ];
----
| | |
|---------------------|----------------------------|
| `myArray[0]` | `{"name": "Джейсон", ...`}` |
| `myArray[1].name` | "Том" |
| | `myArray[1][2]` | 42 |
| `myArray[3]` | undefined |
| | `myArray[3].gender` | TypeError: Cannot read... |
### Массив доступа
``javascript
let myArray = [
"Jason",
"Doe",
39,
"M",
70000,
true
];
myArray[1] |
“Doe” |
myArray[5] |
true |
myArray[6] |
undefined |
Также см.
- JSON (json.org)
- JSON Editor Online (jsoneditoronline.org)
- Преобразование массива JSON в таблицу Markdown, CSV и др. (tableconvert.com)