Javascript 使用stringify设置对象并将其获取到本地存储?
创建名为car的对象:Javascript 使用stringify设置对象并将其获取到本地存储?,javascript,object,local-storage,stringify,Javascript,Object,Local Storage,Stringify,创建名为car的对象: function car(temp){ this.brand=temp[0]; this.color=temp[1]; this.year=temp[2]; } var temp = ['Skoda', 'Red', '2012']; car = new car(temp); 从localStorage读取后设置对象和字符串化: localStorage.setItem('car',car); car = localStorage.getIt
function car(temp){
this.brand=temp[0];
this.color=temp[1];
this.year=temp[2];
}
var temp = ['Skoda', 'Red', '2012'];
car = new car(temp);
localStorage.setItem('car',car);
car = localStorage.getItem('car');
car = JSON.stringify(car);
架线后的车辆----------------->[对象]在file:///android_asset/www/...localStorage.setItem('car',JSON.stringify(car));
car=localStorage.getItem('car')代码>
08-21 11:49:14.860: I/Web Console(9642): car after stringify-----------------> {"brand":"Skoda","color":"Red","year":"2012"}
console.log(“car.brand----->”+car.brand);
car.name----->未定义您不能存储JavaScript对象为localStorage 所以,使用你的第二个选择。首先,将对象字符串化并存储它。然后将其提取并解析为javascript对象
localStorage.setItem('car',JSON.stringify(car));
carString = localStorage.getItem('car');
car = JSON.parse(carString);
console.log(car.brand); // Skoda
根据我的理解,一旦你的字符串化对象被字符串化,你就不能使用它,因为它不再是一个对象。这是一根绳子 因此,当您尝试在字符串上执行
car.brand
时,没有属性brand
就我个人而言,在我看来,良好的做法是可行的
function car(temp){
this.brand=temp[0];
this.color=temp[1];
this.year=temp[2];
}
var temp = ['Skoda', 'Red', '2012'];
car = new car(temp);
localStorage.setItem('car',JSON.stringify(car));
car = localStorage.getItem('car');
car = JSON.parse(car);
这意味着汽车对象现在不是字符串而是对象
在执行此操作时,还可以使用stringify写入本地存储,使用parse读取。我最近也遇到了同样的问题。看看我写的这个脚本。
它允许在本地存储器中存储和检索对象。如果需要,它会自动将对象作为对象返回。另一件事是在嵌套对象中设置和获取项。最棒的是它是一个很小的脚本。最新的浏览器现在支持本地存储作为本地对象。我已经在Chrome v44和Firefox v34上对此进行了测试:
localStorage
Storage {debug: "undefined", uid: "3", length: 2}
typeof localStorage
"object"
所以从现在开始。你会没事的。事实上,localStorage本身就是一个对象(上面的示例就是这样显示的),但它仍然只将数据存储为字符串。您可能会想到Chrome自己的存储API,
Chrome.storage
,它与localStorage相同,但有一些扩展,包括本地存储对象的能力:(可能Firefox也有类似的功能,尽管我没有检查)