【发布时间】:2020-03-02 22:20:53
【问题描述】:
我将用户的购物篮存储在 localStorage 中(他可以拥有多个项目):
let data = [];
for (i = 0; i < rows.length - 1; i++) {
let info = {
"price": price,
"quantity": quantity,
"priceTotal": priceTotal
};
data.push(JSON.stringify(info));
}
localStorage.setItem("reservations", data);
}
如果用户有两个项目,我的 json 看起来像这样:
{"price":"10 €", "quantity":"1", "priceTotal":"10 €"},{"price":"20 €", "quantity":"2", "priceTotal":"40 €"}
我在控制台日志中打印它:
let info = localStorage.getItem("reservations");
console.log(info);
据我了解,这会将其打印为字符串。
我正在尝试使其成为一个对象,以便在其他地方使用 myObject[propertyName] 的数据,但是当
我尝试PARSE 和getItem() :
let myObject = JSON.parse(window.localStorage.getItem('reservations'));
我收到一个错误:
VM8224:1 Uncaught SyntaxError: Unexpected token ,在 JSON 中的位置 123 在 JSON.parse() 处
是因为我的 Json 中有 2 个对象吗? 如何拆分对象?
我做了一个 jsfiddle:https://jsfiddle.net/Demky/4ea1s3rn/28/ (你需要打开控制台才能看到结果)
保存数据
读数据
-
尝试 json.parse 时崩溃
VM516:1 Uncaught SyntaxError: Unexpected token ,在 JSON 中的位置 51 在 JSON.parse 中`
如果我能让我的问题更清楚,请告诉我。
【问题讨论】:
-
您的 JSON 数据需要包含在一个数组中。
-
在此处查看更正jsfiddle.net/n19vbydq 由于这是一个小错误,我不喜欢将其作为答案。
-
字符串化整个数组而不是单个项目。
标签: javascript jquery json local-storage