stringify不适用于我的javascript数组

时间:2014-02-21 13:37:13

标签: javascript stringify

我想在json

中使用stringify编码我的javascript数组
params["margin_left"] = "fd";
params["text"] = "df";
params["margin_to_delete"] = "df";

console.info(params);

返回(Chrome控制台):

[margin_left: "fd", text: "df", margin_to_delete: "df"]

但是当我打电话时:

console.info( JSON.stringify(params) );

我得到了

[]

任何人都知道为什么?

感谢名单

2 个答案:

答案 0 :(得分:1)

只是为了让我原来的评论成为答案。

问题是“params”被定义为一个数组,即

var params = [];
params["margin_left"] = "fd";
params["text"] = "df";
params["margin_to_delete"] = "df";

这意味着当调用stringify时,它会返回它所拥有的内容 - 一个空白数组。 (javascript不支持关联数组,上面代码实际上做的是向数组对象添加其他属性,这些属性确实存在,但为了迭代/字符串化将被忽略)

通过使它成为一个对象,一切都应该按预期工作

var params = {};
params["margin_left"] = "fd";
params["text"] = "df";
params["margin_to_delete"] = "df";

从现在开始调用stringify时,javascript知道你想要的属性。

答案 1 :(得分:0)

Carl指出时,您必须将params定义为对象

  

var params = {};

然后你可以使用stringify转换为JSON String,如下所示:

console.info( JSON.stringify(params) );