0

I have an array of JS objects. For example: var objectList = [{phone: true},{name: 'room'}].

I need to push it to localStorage, and then retrieve this array of object and continue to work with it.

I tried:

 localStorage.setItem('myObject', JSON.stringify(objectList));
 objectsList = JSON.parse(localStorage.getItem('myObject'));

And after this I got error message:

Uncaught SyntaxError: Unexpected token o in JSON at position 1
at JSON.parse ()

Also, when I try console.log(localStorage.getItem('myObject')) I obtained output:

[object Object],[object Object]

And when I try console.log(typeof localStorage.getItem('myObject')) I got string.

How can I properly retrieve and parse array of objects so that I can then work with objects, which are stored in that array?

Thank you!

UPDATE:

var roomsList = [{
category: "ЛЮКС",
cond: true,
wifi: true,
smoke: true,
restrAbility: true,
veranda: true,
kingSizeBed: true,
numFree: 5,
numBusy: 2,
price: 1000,
image: "img/rooms/room0.jpg",
description: "Просторные двухкомнатные люксы с гостиными и уютными спальнями. В оформлении интерьеров использованы предметы антиквариата музейной ценности: мебель, музыкальные инструменты, торшеры и лампы из Богемского стекла - все это рождает уникальный, неповторимый стиль каждого номера. Мраморные ванные комнаты оборудованы гидромассажными ваннами. Все номера данной категории обращены окнами на живописный ансамбль.",
},
{
category: "СТАНДАРТ",
cond: false,
wifi: true,
smoke: false,
restrAbility: false,
veranda: false,
kingSizeBed: false,
numFree: 10,
numBusy: 8,
price: 120,
image: "img/rooms/room0.jpg",
description: "Просторные двухкомнатные люксы с гостиными и уютными спальнями. В оформлении интерьеров использованы предметы антиквариата музейной ценности: мебель, музыкальные инструменты, торшеры и лампы из Богемского стекла - все это рождает уникальный, неповторимый стиль каждого номера. Мраморные ванные комнаты оборудованы гидромассажными ваннами. Все номера данной категории обращены окнами на живописный ансамбль.",
 }] 

and so on.. (14 objects in the array) All other logic and outputs are the same as I described earlier:

var roomsObject = localStorage.getItem('roomsObject');
if (!roomsObject) {
    localStorage.setItem('roomsObject', JSON.stringify(roomsList));
}
roomsList = JSON.parse(localStorage.getItem('roomsObject'));
marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
Dmitrij Burlaj
  • 55
  • 1
  • 3
  • 9

1 Answers1

0

Probably you're storing the actual string [object Object],[object Object], thats why the parse fails. Convert the object to JSON (string) before storing it.

Gabriel
  • 2,170
  • 1
  • 17
  • 20