Zum Inhalt springen
jsonbeautifiers
Deutsch

JSON als Tabelle

Stellt ein Array von Objekten als sortierbare, lesbare Tabelle dar.

JSON
CSV
Tabelle

Nichts, was Sie einfügen, verlässt Ihren Browser. Die connect-src Erlaubnisliste macht daraus eine Garantie des Browsers statt eines Versprechens. Selbst überprüfen

Ein Array von Objekten, dargestellt als Tabelle, die man tatsächlich lesen kann - mit jeder Spalte über alle Zeilen erkannt statt aus der ersten abgeleitet.

Genau dieser letzte Punkt macht den Unterschied. Ein Konverter, der die Schlüssel von Element null liest, verschluckt stillschweigend jedes Feld, das erst später auftaucht, und Sie merken es weiter hinten in der Kette, wenn eine Spalte fehlt.

Wie Zeilen und Spalten bestimmt werden

Ein Array von Objekten
Eine Zeile pro Element. Der offensichtliche und der häufige Fall.
Ein Hüllobjekt
Ein Payload in der Form {"ok": true, "data": [...]} nimmt das Array als Zeilenquelle und sagt das auch, denn das ist eine Vermutung und keine Regel.
Ein einzelnes Objekt
Eine Zeile.
Ein Array von Skalaren
Eine einzelne Spalte namens value.
Spalten
Die Vereinigung aller Pfade über alle Zeilen, in der Reihenfolge ihres ersten Auftretens.

Verschachtelte Werte in einer Zelle

Verschachtelte Objekte werden zu Punktspalten: address.city statt einer Zelle, die JSON enthält. Verschachtelte Arrays werden hier als JSON innerhalb der Zelle dargestellt, denn eine Tabelle mit tags.0 bis tags.47 als eigene Spalten ist keine Tabelle, die noch jemand lesen kann.

Wenn Sie die Indexspalten-Form wollen oder eine Zeile pro Array-Element, nehmen Sie die Seite JSON in CSV, wo diese Regeln einstellbar sind.

How to do this in code

Eine Tabelle aus JSON im Code erzeugen.

py Python
import pandas as pd

df = pd.json_normalize(records)
print(df.to_markdown(index=False))
df.to_csv('out.csv', index=False)
sh jq

Der Teil map(keys) | add | unique ist es, der hier die Vereinigung nimmt statt des ersten Objekts.

# Header row from the union of all keys, then the rows
jq -r '(map(keys) | add | unique) as $cols
       | $cols, (.[] | [.[$cols[]]])
       | @csv' records.json
js JavaScript
const columns = [...new Set(records.flatMap(Object.keys))];
const rows = records.map((r) => columns.map((c) => r[c] ?? ''));

console.table(records);   // in a browser console or Node

Häufige Fragen

Warum ist eine Spalte in manchen Zeilen leer?
Weil dieser Schlüssel in jenen Objekten fehlt. Die Spalte existiert, weil mindestens eine Zeile ihn hat. Eine leere Zelle heißt, der Schlüssel fehlte; eine Zelle mit null heißt, der Schlüssel war vorhanden und hatte den Wert null.
Kann ich nach einer Spalte sortieren?
In dieser Vorschau nicht. Laden Sie die CSV herunter und sortieren Sie sie in einer Tabellenkalkulation, oder fragen Sie das Dokument mit JSONPath ab, wenn Sie eine gefilterte Teilmenge brauchen.