来自LocalStorage的JSON Parse错误

时间:2016-07-26 15:55:17

标签: javascript json

我使用以下

在localStorage中存储对象
function onExit(){
   localStorage.setItem("my_object","'" + JSON.stringify(object) + "'");
 }

当从localStorage中记录它时,它看起来像这样

'{"date":"2016-05-31T23:00:00.000Z","Name":"name","Code":"code","required":"false"}'

现在,如果我直接调用JSON.parse就可以了,也就是说

JSON.parse('{"date":"2016-05-31T23:00:00.000Z","Name":"name","Code":"code","required":"false"}')

会给我一个对象。但是,如果我尝试

JSON.parse(localStorage.my_object)

我在“JSON数据的第1行”出现“意外字符”错误消息

我哪里错了?注意:我没有尝试将对象用单引号括起来无效。

2 个答案:

答案 0 :(得分:4)

要么保存没有引号的对象,例如

function onExit(){
   localStorage.setItem("my_object",JSON.stringify(object));
 }

或者,如果在保存时不删除引号,则需要在尝试解析对象之前删除引号。

答案 1 :(得分:2)

没有必要用额外的引号("'")包装JSON.stringify(object),因为它返回一个可用的字符串。

localStorage.setItem("my_object",JSON.stringify(object));

要检索和解码JSON对象,您需要调用getItem

JSON.parse(localStorage.getItem("my_object"))