Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как разобрать строку 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.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.