所以,我有这个 JavaScript 对象 g。
g = {
vehicles: e.Gc,
clicked_vehicle: g,
site_url: x.display_config.site_image_url,
include_option_prices: !0,
selected_options: b.Mf()
};
d.lead_data = g;
我正在尝试获取 g.clicked_vehicle 的值并将其存储在浏览器上的 cookie 中。
document.cookie = "clicked_vehicle=" + JSON.stringify(g.clicked_vehicle);
g.clicked_vehicle 是一个 JSONArray,因此存储在我的浏览器中的 clicked_vehicle cookie 的值是“[object Object]”。我以为 JSON.stringify 会将 JSONArray 转换为字符串,但由于某种原因它不起作用。
当我这样做时:
document.cookie = "selected_options="+ JSON.stringify(g.selected_options);
它起作用了,字符串被存储到我浏览器上的 cookie 中。
知道问题出在哪里吗?
最佳答案
我认为问题出在这里:
clicked_vehicle: g
正如 Jaromanda X 所提到的,此行可能会导致递归问题,因为您的对象也称为 g
。
如果您确实需要在 clicked_vehicle
中存储相同的数据集,您可以这样做:
g = {
vehicles: e.Gc,
clicked_vehicle: Object.assign({}, g), // copies g instead of referencing it
看看这是否适合您。
关于javascript - 我无法使用 JSON.stringify() 将 JSONArray 转换为 JavaScript 中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43358957/