формат 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;
};
Консоль.log outputs вставить в событие (заголовок,значение,другое) значения (["newData",4,2])
Мне просто нужно, чтобы квадратные скобки [] были удалены на (["newData",4,2]).
Как бы я это сделал? Кроме того, если есть лучший способ вставить данные в sqlite im открыт для предложений. Спасибо
3 ответов:
JSON.stringify(dataArray)всегда будет возвращать квадратные скобки, потому чтоdataArrayимеет тип array. Вместо этого можно было бы упорядочить каждый элемент массива, а затем соединить их через запятую.dataArray = dataArray.map(function(e){ return JSON.stringify(e); }); dataString = dataArray.join(",");Затем
["newData",4,2]Становится
"newData",4,2Добавление: Пожалуйста, не пытайтесь
replace()выводить скобки вручную, потому что однажды скобка может войти в Ваш массив в виде строки. например["Please see ref[1]",4,2]
Ответ Дрейка был бы моим личным выбором, потому что код ясно выражает намерение. Но чтобы показать альтернативу:
var strung = JSON.stringify(dataArray); console.log(strung.substring(1,strung.length-1));
Спасибо селезней и S McCrohan за ваши ответы. Я обнаружил, что
.replace(/]|[[]/g, '')добавляется кJSON.stringify(dataArray)Полная строка
JSON.stringify(dataArray).replace(/]|[[]/g, '')
Comments