我希望将查询结果格式化为一个包含每个记录的数组对象的单个JSON对象。需要帮助编写脚本 -
我可以手动编写一个函数来构建JSON,但我感觉已经有一个可以满足我的要求的函数了,只是我找不到它。
我想要获取的JSON字符串:
实际结果
JSON.stringify
函数正在构建一个对象数组(我的JSON是反转的!)。我可以手动编写一个函数来构建JSON,但我感觉已经有一个可以满足我的要求的函数了,只是我找不到它。
我想要获取的JSON字符串:
{["id":1,"info":"Ipsum 0"], ["id":2,"info":"Ipsum 1"],
["id":3,"info":"Ipsum 2"], ["id":4,"info":"Ipsum 3"] (and so on) }
实际结果
[{"id":1,"info":"Ipsum 0"},{"id":2,"info":"Ipsum 1"},
{"id":3,"info":"Ipsum 2"},{"id":4,"info":"Ipsum 3"},
{"id":5,"info":"Ipsum 4"},{"id":6,"info":"Ipsum 5"},
{"id":7,"info":"Ipsum 6"},{"id":8,"info":"Ipsum 7"},
{"id":9,"info":"Ipsum 8"},{"id":10,"info":"Ipsum 9"}]
我的代码(基于这个例子)如下:
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database(':memory:');
db.serialize(function() {
db.run("CREATE TABLE lorem (info TEXT)");
var stmt = db.prepare("INSERT INTO lorem VALUES (?)");
for (var i = 0; i < 10; i++) {
stmt.run("Ipsum " + i);
}
stmt.finalize();
var sql = "SELECT rowid AS id, info FROM lorem";
// Print the records as JSON
db.all(sql, function(err, rows) {
console.log(JSON.stringify(rows));
});
});
db.close();