In meiner node.js-App erhalte ich Werte vom mongodb-Server und möchte sie in eine CSV-Datei konvertieren. Das übergeordnete Element ist einfach aus der Datenbank zugänglich und wird in der CSV-Datei angezeigt, aber das Unterelement wird nicht angezeigt. t zugegriffen werden ..
JSON-Struktur:
%Vor%Mein Code:
%Vor%Alle Werte außer dem Unterelement des Zeitfensters werden angezeigt. Wie kann ich von der Datenbank aus auf das Unterelement des JSON zugreifen und alle Werte in einer CSV-Datei anzeigen lassen?
Eine einfache Möglichkeit, auf verschachtelte Elemente zuzugreifen, finden Sie in der Antwort zu Folgethread ( Zugriff auf verschachtelte Datenstrukturen ).
%Vor%Eine verschachtelte Datenstruktur ist ein Array oder Objekt, das sich auf andere Arrays oder Objekte bezieht, d. h. seine Werte sind Arrays oder Objekte. Auf solche Strukturen kann zugegriffen werden, indem nacheinander Punkt- oder Klammernotation angewendet wird.
Wie wir sehen können, ist timeSlot ein Objekt, daher können wir auf seine Eigenschaften mit Punktnotation zugreifen. Die Eigenschaft items wird wie folgt aufgerufen:
%Vor%Alternativ hätten wir Klammern für jede der Eigenschaften verwenden können, insbesondere wenn der Name Zeichen enthält, die die Verwendung der Punktnotation ungültig gemacht hätten:
Sobald Sie alle Daten haben, die Sie benötigen, sollte die Erstellung der CSV-Datei ziemlich einfach sein:)
Versuchen Sie, user.timeslot.fromTime & amp; & amp; Machen Sie einen Schlüssel / Wert für jedes Unterelement
Versuchen Sie es so. Dadurch werden alle Daten aus dem timeSlot-Objekt in eine einzelne Zeichenfolge zusammengeführt. Sie können diese Zeichenfolge so oft formatieren, wie Sie möchten. Code add in forEach Schleife.
%Vor%Hoffe, das hilft.
Das Problem ist, dass Sie in Ihrer forEach-Schleife, in der Sie über die Variable values
iterieren, auf die Eigenschaft timeslot
von user
statt auf den Wert timeSlot
von user
zugreifen. Denken Sie daran, Groß- und Kleinschreibung ist wichtig!
Im verknüpften Beispiel binde ich dieses Objekt auch so an, dass ich es in das Dokument schreiben kann und die Ausgabe klar sehen kann. Ich würde dagegen empfehlen, weil Sie später Probleme beim Parsen bekommen könnten. Stattdessen sollten Sie eine Zeichenfolge erstellen, indem Sie auf Eigenschaften dieses Objekts zugreifen.
Wie auch immer, der Grund für einen Fehler war die Groß- / Kleinschreibung in Ihrem ursprünglichen Code. Ich hoffe das hilft.
Wenn Sie strukturierte Daten (hier: JSON) lesen und diese in abgeflachte Daten (hier: csv) konvertieren wollen, müssen Sie entscheiden, wie Sie die Abflachung ausführen.
Mit anderen Worten - Ihre csv-Zielstruktur könnte die folgende sein:
%Vor%Sobald Sie entschieden haben, dass Sie die in timeSlot angegebene Struktur auf diese Weise reduzieren wollen, können Sie die Kommentare von @Aikon Mokwai einfach ohne die stringify verwenden - verwenden Sie die Array-Notation wie von @trolologuy beschrieben lies die Struktur:
%Vor%Anschließend muss derjenige, der den CSV liest, verstehen, dass Sie die Daten geglättet haben, aber keine Struktur parsen müssen, da Sie wirklich flache Datensätze bereitstellen (wie CSV es am liebsten mag).
Ich hoffe, es hilft!