Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг
ПРИХОДИТЕ УЧИТЬСЯ НОВОЙ ПРОФЕССИИ ЛЕТОМ СО СКИДКОЙ ДО 70% Забронировать скидку
06 Июл 2023
2 мин
126

Хранение объектов в HTML5 localStorage/sessionStorage

Одной из общих проблем, с которой сталкиваются разработчики JavaScript, является хранение объектов в localStorage или sessionStorage. Эти механизмы хранения позволяют

Одной из общих проблем, с которой сталкиваются разработчики JavaScript, является хранение объектов в localStorage или sessionStorage. Эти механизмы хранения позволяют сохранять пары ключ-значение в браузере пользователя. Однако, если попытаться сохранить объект JavaScript, он будет преобразован в строку.

Рассмотрим следующий пример:

var testObject = { 'one': 1, 'two': 2, 'three': 3 };

// Помещаем объект в хранилище
localStorage.setItem('testObject', testObject);

// Извлекаем объект из хранилища
var retrievedObject = localStorage.getItem('testObject');

console.log(typeof retrievedObject); // "string"
console.log(retrievedObject); // "[object Object]"

Как видно из примера, при попытке сохранить объект JavaScript в localStorage, он преобразуется в строку. Это происходит потому, что localStorage и sessionStorage могут хранить только строки.

Решение

Проблема может быть решена с помощью методов JSON.stringify и JSON.parse. JSON.stringify преобразует объект JavaScript в строку JSON, которую можно сохранить в localStorage или sessionStorage. JSON.parse преобразует строку JSON обратно в объект JavaScript.

Вот как это может выглядеть:

var testObject = { 'one': 1, 'two': 2, 'three': 3 };

// Преобразуем объект в строку JSON и сохраняем в хранилище
localStorage.setItem('testObject', JSON.stringify(testObject));

// Извлекаем строку JSON из хранилища и преобразуем обратно в объект
var retrievedObject = JSON.parse(localStorage.getItem('testObject'));

console.log(typeof retrievedObject); // "object"
console.log(retrievedObject); // {one: 1, two: 2, three: 3}

Таким образом, можно хранить объекты JavaScript в localStorage или sessionStorage, преобразуя их в строки JSON и обратно.

Добавить комментарий

Подарок
Забрать подарок