javascript - JSON.stringify(array) 用方括号包围

标签 javascript json node.js sqlite 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 event (title,value,other) VALUES (["newData",4,2]) 我只需要删除 (["newData",4,2]) 上的 [] 方括号。 我该怎么做?另外,如果有更好的方法将数据插入 sqlite,我愿意接受建议。谢谢

最佳答案

JSON.stringify(dataArray) 将始终返回方括号,因为 dataArray 是数组类型。相反,您可以对数组的每个元素进行字符串化,然后将它们以逗号分隔。

dataArray = dataArray.map(function(e){
  return JSON.stringify(e);
});

dataString = dataArray.join(",");

然后

["newData",4,2]

成为

"newData",4,2

附录:请不要尝试手动 replace() 去掉括号,因为有一天括号可能会以字符串形式进入您的数组。例如["请参阅 ref[1]",4,2]

关于javascript - JSON.stringify(array) 用方括号包围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29737024/

相关文章:

php - 从服务器编码的 JSON 数据出现问题,无法绘制图表

ios - 从函数内的 JSON 响应更新全局变量

c# - 生成 Google Chart JSON 数组

json - 取一个 JSON 字符串,将其解码为 map[string]interface{},编辑并将其编码为 []byte 似乎比它应该更复杂

javascript - Cappuccino 和 Node.js 有什么区别?

node.js - npm 错误!将 bash 脚本与 npm 一起使用时的代码 ELIFECYCLE

android - Cordova 构建和 gradle 依赖项

Javascript:使用拖放在屏幕上重新排列 div

javascript - 动画 jQuery 状态不成立

javascript - Jekyll 未加载图像的 Javascript