Как преобразовать объект в JSON
Короткий ответ
JSON.stringify() превращает объект в строку JSON:
const user = { name: 'Anna', age: 30, admin: false };
console.log(JSON.stringify(user));Результат:
{"name":"Anna","age":30,"admin":false}Читаемый формат
Третий аргумент задаёт отступ. Это удобно для логов и файлов:
const user = { name: 'Anna', roles: ['admin'] };
console.log(JSON.stringify(user, null, 2));Результат:
{
"name": "Anna",
"roles": [
"admin"
]
}Только некоторые поля
Вторым аргументом можно передать массив ключей, которые нужно оставить:
const user = { name: 'Anna', password: 'secret', email: 'anna@example.com' };
console.log(JSON.stringify(user, ['name', 'email']));Результат:
{"name":"Anna","email":"anna@example.com"}Частая ошибка
Некоторые значения не переживают преобразования: функции и undefined пропадают, NaN превращается в null, а даты — в строки:
const data = { a: undefined, b: () => 1, c: NaN, d: new Date(Date.UTC(2025, 0, 1)) };
console.log(JSON.stringify(data));Результат:
{"c":null,"d":"2025-01-01T00:00:00.000Z"}Функции из этого ответа
- JSON.stringify — Преобразует значение в строку в формате JSON.
- JSON.parse — Разбирает строку JSON и возвращает значение.