将js对象数组推送到localStorage然后检索并解析时失败 [英] Fail when pushing an array of js objects to localStorage and then retrieving it and parsing

查看:93
本文介绍了将js对象数组推送到localStorage然后检索并解析时失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个JS对象数组.例如:var objectList = [{phone: true},{name: 'room'}]. 我需要将其推送到localStorage,然后撤回该对象数组并继续使用它.我尝试:

I have an array of JS objects. For example: var objectList = [{phone: true},{name: 'room'}]. I need to push it to localStorage, and then retireve this array of object and continue to work with it. I try:

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

然后我收到错误消息:

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

此外,当我尝试console.log(localStorage.getItem('myObject'))时,我获得了输出:

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

[object Object],[object Object]

当我尝试console.log(typeof localStorage.getItem('myObject'))时,我得到了string.

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?

谢谢!

UDPATE:

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: "Просторные двухкомнатные люксы с гостиными и уютными спальнями. В оформлении интерьеров использованы предметы антиквариата музейной ценности: мебель, музыкальные инструменты, торшеры и лампы из Богемского стекла - все это рождает уникальный, неповторимый стиль каждого номера. Мраморные ванные комнаты оборудованы гидромассажными ваннами. Все номера данной категории обращены окнами на живописный ансамбль.",
 }] 

依此类推..(数组中有14个对象)所有其他逻辑和输出与我之前描述的相同:

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'));

推荐答案

可能您正在存储实际的字符串[object Object],[object Object],这就是解析失败的原因.在存储对象之前,将其转换为JSON(字符串).

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.

这篇关于将js对象数组推送到localStorage然后检索并解析时失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆