Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Что может содержать в себе JSON
JSON (JavaScript Object Notation) — это формат для обмена данными, который имеет строго определённый набор поддерживаемых типов данных. Несмотря на общепринятое мнение, JSON может содержать НЕ всё, что есть в JavaScript.
Основные типы данных в JSON
JSON поддерживает ровно 6 типов:
- Объекты — неупорядоченные коллекции ключ-значение
- Массивы — упорядоченные коллекции значений
- Строки — текстовые данные в двойных кавычках
- Числа — целые и вещественные
- Логические значения —
trueиfalse - Null — отсутствие значения
Примеры валидного JSON
{
"name": "Иван",
"age": 30,
"isActive": true,
"address": null,
"hobbies": ["чтение", "спорт", "путешествия"],
"contact": {
"email": "ivan@example.com",
"phone": "+7-999-123-45-67"
},
"salary": 150000.50
}
Что НЕ может содержать JSON
Функции:
const obj = {
name: "Мария",
greet: function() { return "Hello"; }
};
JSON.stringify(obj); // {"name":"Мария"}
undefined:
const obj = { name: "Иван", age: undefined };
JSON.stringify(obj); // {"name":"Иван"}
Symbol:
const obj = { id: Symbol("id") };
JSON.stringify(obj); // {}
NaN и Infinity:
const obj = { value: NaN, limit: Infinity };
JSON.stringify(obj); // {"value":null,"limit":null}
Date объекты (напрямую):
const obj = { createdAt: new Date() };
JSON.stringify(obj);
// {"createdAt":"2026-03-26T10:30:00.000Z"}
Регулярные выражения:
const obj = { pattern: /\d+/g };
JSON.stringify(obj); // {"pattern":{}}
Комментарии:
{
"name": "Иван"
}
Как правильно работать с ограничениями JSON
Для Date объектов используй ISO строки:
const data = {
createdAt: new Date().toISOString(),
updatedAt: Date.now()
};
Для функций используй replacer:
const obj = {
name: "Иван",
method: () => {}
};
const json = JSON.stringify(obj, (key, value) => {
if (typeof value === 'function') {
return '[Function]';
}
return value;
});
Для undefined используй replacer:
const obj = { name: "Мария", email: undefined };
const json = JSON.stringify(obj, (key, value) =>
value === undefined ? null : value
);
Важные правила JSON
- Ключи всегда в двойных кавычках
- Только двойные кавычки для строк
- Запятая после последнего элемента запрещена
- Обязателен корневой элемент — объект или массив
Максимальный размер JSON
- По спецификации — нет лимита
- В браузере — зависит от памяти
- На сервере — часто ограничено конфигурацией
JSON — это простой и строгий формат, идеальный для обмена данными между системами.