我无法使用JSON.stringify()将JSONArray转换为JavaScript中的String

时间:2017-04-12 01:56:07

标签: javascript json cookies stringify

所以,我有这个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中。

知道问题是什么吗?

1 个答案:

答案 0 :(得分:0)

我认为问题出在这一行:

clicked_vehicle: g

如Jaromanda X所述,此行可能会导致递归问题,因为您的对象也称为g

如果你真的需要在clicked_vehicle内存储同一组数据,你可以这样做:

g = {
  vehicles: e.Gc,
  clicked_vehicle: Object.assign({}, g), // copies g instead of referencing it

看看它是否适合你。