формат 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 открыт для предложений. Спасибо

700   3  

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

    Ничего не найдено.