JSON.stringify(数组)用方括号包围

我试图得到一个数组的数据插入到sqlite数据库中的多个列,我已经得到它几乎与这个工作:

function InsertData(dbData){ var valueArray = [], dataArray = []; var values = Object.keys(dbData); for(var key in values){ valueArray[valueArray.length] = values[key]; dataArray[dataArray.length] = dbData[values[key]]; } console.log("INSERT INTO "+dbData.table+" ("+valueArray+") VALUES ("+JSON.stringify(dataArray)+")"); dbData.database.serialize(function(){ dbData.database.run("INSERT INTO "+dbData.table+" ("+valueArray+") VALUES ("+JSON.stringify(dataArray)+")"); }); } 

我的数据是这样构造的:

 //app.js function EventData(title, value, other){ this.title = title; this.value = value; this.other = other; } EventData.prototype = new dbtools.DBData(usuevents, 'event'); var thisEventData = new EventData('newData', 4, 2); //dbtools.js DBData = function(database, table){ this.database = database; this.table = table; }; 

console.log输出INSERT INTO事件(title,value,other)VALUES([“newData”,4,2])我只需要在[ [newData“,4,2]上删除[]方括号。 我将如何做到这一点? 另外如果有更好的方法,插入数据到sqlite im开放的build议。 谢谢

JSON.stringify(dataArray)将始终返回方括号,因为dataArray是数组types。 相反,您可以将数组的每个元素串联起来,然后用逗号分隔它们。

 dataArray = dataArray.map(function(e){ return JSON.stringify(e); }); dataString = dataArray.join(","); 

然后

 ["newData",4,2] 

 "newData",4,2 

附录:请不要尝试手动replace()括号,因为可能有一天括号将以stringforms进入数组。 例如["Please see ref[1]",4,2]

德雷克的答案将是我个人的select,因为代码清楚地expression了意图。 但是要显示一个替代scheme:

 var strung = JSON.stringify(dataArray); console.log(strung.substring(1,strung.length-1)); 

谢谢Drakes和S McCrohan的回答。 我发现.replace(/]|[[]/g, '')追加到JSON.stringify(dataArray)

全行JSON.stringify(dataArray).replace(/]|[[]/g, '')