Wie formatieren node.js sqlite3-Datensatz als JSON-Objekt der Datensatz-arrays

Möchte ich zum formatieren meiner Abfrageergebnisse als ein einzelnes JSON-Objekt enthält ein array-Objekt für jeden Datensatz. Brauchen Sie Hilfe, das Skript zu schreiben, obwohl - die JSON.stringify Funktion baut ein array von Objekten (Mein JSON ist von innen nach außen!).

Kann ich immer schreiben, eine Funktion zum erstellen des JSON manuell, aber ich habe das Gefühl, es ist schon eine Funktion, das zu tun, was ich Suche. Ich kann es einfach nicht finden.

Den JSON-string möchte ich bekommen:

{["id":1,"info":"Ipsum 0"], ["id":2,"info":"Ipsum 1"], 
["id":3,"info":"Ipsum 2"], ["id":4,"info":"Ipsum 3"] (and so on) }

Tatsächlichen Ergebnisse

[{"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"}]

Mein code bisher (basierend auf dieses Beispiel)

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();
  • Was ist erstaunlich, über das Ergebnis wird ein array von Objekten?
  • Vielleicht bin ich dem umwandeln in JSON mit der falschen Funktion. Ich würde gerne sehen, die Ergebnisse in dem format, das ich beschrieben.
  • Nochmal: was ist erstaunlich, über dieses? Sie haben gute Kenntnisse in der JSON-format?
  • Re-formulierte Frage deutlicher
  • Die Ausgabe, die du fragst ist nicht gültiges json
InformationsquelleAutor Brad Hein | 2013-07-18
Schreibe einen Kommentar