如何格式化node.js sqlite3logging集作为logging数组的JSON对象

我想将我的查询结果格式化为包含每个logging的数组对象的单个JSON对象。 需要编写脚本的帮助 – JSON.stringify函数正在构build一个对象数组(我的JSON从里到外!)。

我总是可以编写一个函数来手动构buildJSON,但我有一种感觉,已经有一个函数来做我正在寻找的东西。 我无法find它。

我想要得到的JSONstring:

 {["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(); 

根据我所知道的JSON,我期待整个logging集都用大括号括起来,每个logging都用方括号括起来。 但是我看到的是相反的。

不,你有它落后。 数据库结果将被build模为对象数组 – 数组1表示整个查询的结果,数组中的每个对象表示单个结果logging。 在JSON中,数组使用方括号,对象使用花括号(与实际的JavaScript代码相同)。