Object {test: "{a:"b",c:"d"}"}
JSON.parse
方法返回错误,我所做的是:
var local_storage = getAll();
$.parseJSON(JSON.stringify(local_storage.test.substring(0,0).substring(0,local_storage.length,-1)));
输出是:
{a:"b",c:"d"}
但是我不能将它用作local_storage.test.a为什么会这样,解决方案是什么?
thx求助:)
编辑!
感谢@Oli Soproni B,解决方案是:
var key = {a:"b",c:"d"};
var l = JSON.stringify(key);
localStorage.setItem('test',l);
var local_storage = $.parseJSON(localStorage.getItem('test'));
console.log(local_storage);
console.log(local_storage.a);
答案 0 :(得分:3)
// data
var k = {a:"b", c: "d"};
// stringify json
var l = JSON.stringify(k);
// set item to local storage
localStorage.setItem('test', l);
// get item to local storage and parse data
var local_storage = $.parseJSON(localStorage.getItem('test'));
console.log(local_storage);
Object {a: "b", c: "d"}
console.log(local_storage.a);
prints b
// or use
var local_storage = JSON.parse(localStorage.getItem('test'));
// in parsing the stringify json data
答案 1 :(得分:1)
Localstorage存储字符串,而不是对象。因此,您需要在检索时将对象转换为字符串,并将其转换为对象。
存储:
localStorage.setItem("key",JSON.stringify(obj));
要检索:
obj = JSON.parse(localStorage.getItem(obj));
答案 2 :(得分:0)
您使用了Json.stringify
,因为您需要将数据作为字符串存储到localstorage中。
您需要parse
再次JSON
才能将其用作JSON对象,
JSON.stringify(local_storage.test.substring(0,0).substring(0,local_storage.length,-1))
这会尝试从先前存储的字符串中获取子字符串,并再次尝试对其进行字符串化。
<小时/> 您可以直接获取存储的字符串,
var local_storage = getAll();
var test=JSON.parse(local_storage.test);
然后使用,作为测试对象,test: {a:"b",c:"d"}