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);
// Retrieving data:
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(), щоб перетворити їх назад у функції.