Учебник по JS

ГЛАВНАЯ JS Введение JS Куда Вывод JS Заявления JS JS-синтаксис JS-комментарии JS-переменные JS Пусть Константа JS JS-операторы JS-арифметика Назначение JS JS-типы данных JS-функции JS-объекты JS-события JS-строки Строковые методы JS Поиск строки JS Шаблоны строк JS JS-номера Методы номеров JS JS-массивы Методы массива JS Сортировка массива JS Итерация массива JS Константа массива JS JS-даты Форматы даты JS Методы получения даты JS Методы установки даты JS JS-математика JS Случайный JS Булевы значения Сравнение JS JS-условия JS-переключатель JS цикл для Цикл JS для входа Цикл JS для Цикл JS во время Перерыв JS JS-итерации JS-наборы JS-карты JS Typeof Преобразование типов JS JS побитовый JS регулярное выражение JS-ошибки Область JS JS-подъем Строгий режим JS JS это ключевое слово Функция стрелки JS JS-классы JS JSON JS-отладка Руководство по стилю JS Лучшие практики JS JS-ошибки JS-производительность Зарезервированные слова JS

JS-версии

JS-версии JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE/пограничный История JS

JS-объекты

Определения объектов Свойства объекта Методы объекта Отображение объекта Средства доступа к объектам Конструкторы объектов Прототипы объектов Итерации объектов Наборы объектов Карты объектов Ссылка на объект

JS-функции

Определения функций Параметры функции Вызов функции Вызов функции Функция Применить Закрытие функций

JS-классы

Введение в класс Наследование классов Статический класс

JS асинхронный

Обратные вызовы JS JS асинхронный JS-обещания JS асинхронный/ожидание

JS HTML DOM

Дом Введение DOM-методы Документ DOM DOM-элементы DOM HTML DOM-формы ДОМ CSS DOM-анимации События ДОМ Слушатель событий DOM DOM-навигация DOM-узлы Коллекции DOM Списки узлов DOM

Спецификация браузера JS

JS-окно JS-экран Местоположение JS История JS JS-навигатор Всплывающее оповещение JS JS Тайминг JS-куки

JS-веб-API

Введение в веб-API API веб-форм API истории веб-поиска API веб-хранилища API веб-работника API веб-выборки API веб-геолокации

JS АЯКС

Введение в АЯКС AJAX XMLHttp АЯКС-запрос AJAX-ответ XML-файл AJAX АЯКС PHP АЯКС АСП База данных AJAX AJAX-приложения Примеры AJAX

JS JSON

Введение в JSON Синтаксис JSON JSON против XML Типы данных JSON Анализ JSON Строковая JSON JSON-объекты JSON-массивы JSON-сервер JSON PHP JSON HTML JSON JSONP

JS против JQuery

Селекторы jQuery JQuery HTML jQuery CSS JQuery DOM

JS-графика

JS-графика JS Холст JS сюжет JS Chart.js JS Google Диаграмма JS D3.js

JS-примеры

JS-примеры JS HTML DOM JS HTML-ввод HTML-объекты JS HTML-события JS JS-браузер JS-редактор JS-упражнения JS-викторина JS-сертификат

JS-ссылки

Объекты JavaScript HTML DOM-объекты


JSON .parse()


Обычно JSON используется для обмена данными с/на веб-сервер.

При получении данных с веб-сервера данные всегда представляют собой строку.

Проанализируйте данные с помощью JSON.parse(), и данные станут объектом JavaScript.


Пример — разбор JSON

Представьте, что мы получили этот текст от веб-сервера:

'{"name":"John", "age":30, "city":"New York"}'

Используйте функцию JavaScript JSON.parse()для преобразования текста в объект JavaScript:

const obj = JSON.parse('{"name":"John", "age":30, "city":"New York"}');

Убедитесь, что текст в формате JSON, иначе вы получите синтаксическую ошибку.

Используйте объект JavaScript на своей странице:

Пример

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = obj.name;
</script>

Массив в формате JSON

При использовании JSON.parse()для JSON, полученного из массива, метод вернет массив JavaScript вместо объекта JavaScript.

Пример

const text = '["Ford", "BMW", "Audi", "Fiat"]';
const myArr = JSON.parse(text);


Исключения

Даты разбора

Объекты даты не разрешены в JSON.

Если вам нужно включить дату, запишите ее в виде строки.

Вы можете преобразовать его обратно в объект даты позже:

Пример

Преобразование строки в дату:

const text = '{"name":"John", "birth":"1986-12-14", "city":"New York"}';
const obj = JSON.parse(text);
obj.birth = new Date(obj.birth);

document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;

Или вы можете использовать второй параметр JSON.parse()функции, называемой Reviver .

Параметр Reviver — это функция, которая проверяет каждое свойство перед возвратом значения.

Пример

Преобразуйте строку в дату, используя функцию viver :

const text = '{"name":"John", "birth":"1986-12-14", "city":"New York"}';
const obj = JSON.parse(text, function (key, value) {
  if (key == "birth") {
    return new Date(value);
  } else {
    return value;
  }
});

document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;

Функции разбора

Функции не разрешены в JSON.

Если вам нужно включить функцию, запишите ее в виде строки.

Вы можете преобразовать его обратно в функцию позже:

Пример

Преобразовать строку в функцию:

const text = '{"name":"John", "age":"function () {return 30;}", "city":"New York"}';
const obj = JSON.parse(text);
obj.age = eval("(" + obj.age + ")");

document.getElementById("demo").innerHTML = obj.name + ", " + obj.age();

Вам следует избегать использования функций в JSON, функции потеряют свою область действия, и вам придется использовать eval(), чтобы преобразовать их обратно в функции.