JSON.stringify:JSONstring将是空的

var clients = []; var tmp = []; tmp["username"] = rows[0].username; tmp["rank"] = rows[0].rank; tmp["lastaction"] = "0"; tmp["connection"] = connection; clients.push(tmp); JSON.stringify(clients) 

我初始化一个数组(客户端),并将一个关联数组(tmp)推送到客户端数组。 但是,如果我“串”客户端,它只会返回“[[]]”。

我错了什么?

先谢谢你。

您应该将tmp转换为对象字面值而不是数组字面值。

 var clients = []; var tmp = {}; tmp["username"] = "foo"; tmp["rank"] = 1; tmp["lastaction"] = "0"; tmp["connection"] = "bar"; clients.push(tmp); console.log(JSON.stringify(clients)) 

像这样更新你的代码

 var tmp = {}; 

在JavaScript中你不能直接支持连接数组作为对象

您需要将tmp初始化为一个对象:

 var clients = []; var tmp = {}; tmp["username"] = 'username'; tmp["rank"] = 1 tmp["lastaction"] = 2 tmp["connection"] = 3 clients.push(tmp); console.log(JSON.stringify(clients));