Как разобрать строку JSON
Короткий ответ
JSON.parse() превращает строку JSON в объект или массив:
const text = '{"name":"Anna","tags":["admin","editor"]}';
const user = JSON.parse(text);
console.log(user.name, user.tags.length);Результат:
Anna 2Сломанный JSON
Если строка — не корректный JSON, JSON.parse() выбрасывает ошибку. Оберните его в try...catch:
const safeParse = (text, fallback = null) => {
try {
return JSON.parse(text);
} catch {
return fallback;
}
};
console.log(safeParse('{"ok":true}').ok);
console.log(safeParse('{ok: true}'));Результат:
true
nullДаты
В JSON нет дат, они приходят строками. Второй аргумент JSON.parse() — функция-reviver — может преобразовать их во время разбора:
const text = '{"title":"Meeting","at":"2025-06-01T10:00:00Z"}';
const event = JSON.parse(text, (key, value) => (key === 'at' ? new Date(value) : value));
console.log(event.at instanceof Date, event.at.getUTCHours());Результат:
true 10Частая ошибка
JSON требует двойных кавычек вокруг ключей и строк. Одинарные кавычки, которые подходят для JavaScript, его ломают:
try {
JSON.parse("{'name': 'Anna'}");
} catch (error) {
console.log(error.name);
}Результат:
SyntaxErrorФункции из этого ответа
- JSON.parse — Разбирает строку JSON и возвращает значение.
- JSON.stringify — Преобразует значение в строку в формате JSON.