我想在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) );
我得到了
[]
任何人都知道为什么?
感谢名单
答案 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) );