Ich spiele gerade mit nodeJs und habe versucht, neue Daten in eine bestehende JSON-Datei zu schreiben, nur um Probleme mit dem Format zu haben und die richtigen Daten zu bekommen um dieses neue JSON-Objekt zum ersten der Array-Liste zu bekommen. Ich habe das getan, indem ich die erste Index-ID genommen habe, sie erhöht habe und versucht habe, unshift()
zu verwenden, aber es fügt nicht so hinzu, wie ich es erwartet hatte.Hinzufügen eines neuen JSON-Objekts vor dem JSON-Array-Set
JSON-Datei Inhalt data.json
:
[
{
"id": 3,
"content": "three"
},
{
"id": 2,
"content": "two"
},
{
"id": 1,
"content": "one"
}
]
Code I für neue JSON obj geschrieben möchte ich hinzufügen:
var allJSON = fs.readFileSync('data.json');
var allj = JSON.parse(allJSON);
var lastId = parseInt(allj[0].id);
var newData = {
id: ++lastId,
content: "test"
};
var allNewJSON = allj.unshift(JSON.stringify(newData));
// this yields a result of just the number "4" and erased everything else.
Lesen Sie die Dokumentation für die Unshift hier: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/unshift –
Ich stimme für das Schließen dieser Frage als Off-Thema weil die Antwort in der feinen Anleitung gefunden werden kann ~ https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/unshift#Return_value – Phil
Auch abgesehen von dem Problem mit dem Wert zurückgegeben aus '.unshift()', warum rufen Sie 'JSON.stringify()' auf dem Element auf, das Sie dem Array hinzufügen möchten? Die Elemente in Ihrem Array sind keine JSON-Zeichenfolgen. – nnnnnn