JSON.stringify()
Обычно JSON используется для обмена данными с/на веб-сервере.
При отправке данных на веб-сервер данные должны быть строкой.
Преобразование объекта JavaScript в строку с помощью JSON.stringify()
.
Преобразование объекта JavaScript в строку
Представьте, что у нас есть этот объект в JavaScript:
const obj = {name: "John", age: 30, city: "New York"};
Используйте функцию JavaScript JSON.stringify()
, чтобы преобразовать его в строку.
const myJSON = JSON.stringify(obj);
Результатом будет строка, следующая за нотацией JSON.
myJSON
теперь является строкой и готова к отправке на сервер:
Пример
const obj = {name: "John", age: 30, city: "New York"};
const myJSON = JSON.stringify(obj);
Попробуйте сами »
В следующих главах вы узнаете, как отправить JSON на сервер.
Строковать (преобразовать в строку) массив JavaScript
Можно также преобразовать массивы JavaScript в строки:
Представьте, что у нас есть этот массив в JavaScript:
const arr = ["John", "Peter", "Sally", "Jane"];
Используйте JavaScript функцию JSON.stringify()
, чтобы преобразовать его в строку.
const myJSON = JSON.stringify(arr);
Результатом будет строка, следующая за нотацией JSON.
myJSON
теперь является строкой и готова к отправке на сервер:
Пример
const arr = ["John", "Peter", "Sally", "Jane"];
const myJSON = JSON.stringify(arr);
Попробуйте сами »
В следующих главах вы узнаете, как отправить строку JSON на сервер.
Хранение данных
При хранении данных данные должны иметь определенный формат, и независимо от того, где вы решите их хранить, текстовый всегда является одним из допустимых форматов.
JSON позволяет хранить объекты JavaScript в виде текста.
Пример
Хранение данных в локальном хранилище
// Хранение данных:
const myObj = {name: "John",
age: 31, city: "New York"};
const myJSON = JSON.stringify(myObj);
localStorage.setItem("testJSON", myJSON);
// Извлечение данных:
let text = localStorage.getItem("testJSON");
let obj = JSON.parse(text);
document.getElementById("demo").innerHTML = obj.name;
Попробуйте сами »
Исключения
Строка дат
В JSON объекты даты не допускаются. Функция JSON.stringify()
преобразует любые даты в строки.
Пример
const obj = {name: "John", today: new Date(), city : "New York"};
const myJSON = JSON.stringify(obj);
Попробуйте сами »
Вы можете преобразовать строку обратно в объект даты в приемнике.
Строчные функции
В JSON функции не допускаются в качестве значений объекта.
Функция JSON.stringify()
удалит все функции из объекта JavaScript, как ключ, так и значение:
Пример
const obj = {name: "John", age: function () {return 30;}, city: "New York"};
const myJSON = JSON.stringify(obj);
Попробуйте сами »
Это можно опустить, если вы преобразуете свои функции в строки перед запуском функции JSON.stringify()
.
Пример
const obj = {name: "John", age: function () {return 30;}, city: "New York"};
obj.age = obj.age.toString();
const myJSON = JSON.stringify(obj);
Попробуйте сами »
Если вы отправляете функции с помощью JSON, функции теряют свою область действия, и получатель должен будет использовать eval(), чтобы преобразовать их обратно в функции.