JSON-Viewer
Ein aufklappbarer Baum mit dem JSON-Pfad jedes Knotens, gebaut für große Dateien.
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
Eine Baumansicht dient dazu, ein Payload zu erkunden, das Sie nicht geschrieben haben. Klappen Sie zu, was Sie nicht interessiert, klappen Sie auf, was Sie interessiert, und kopieren Sie den Pfad zu jedem Wert, um ihn im Code zu erreichen.
Sie ist für große Dokumente gebaut. Knoten werden erst gerendert, wenn ihr Elternknoten aufgeklappt ist - eine zugeklappte 10-MB-Datei kostet also die Länge ihrer Wurzel und nicht ihre Knotenzahl.
Was der Baum zeigt
Über die Struktur hinaus ein paar Dinge, die im rohen Text schwer zu sehen sind.
- Den Pfad jedes Knotens
- In der normalisierten Form nach RFC 9535, also direkt in den JSONPath-Tester einfügbar. Fahren Sie über eine Zeile und kopieren Sie ihn.
- Anzahl der Kinder
- Ein zugeklapptes Objekt nennt die Zahl seiner Schlüssel, ein Array die Zahl seiner Elemente. Sie können die Gestalt beurteilen, ohne aufzuklappen.
- Doppelte Schlüssel
- Direkt markiert. In rohem Text ist ein Duplikat fünfhundert Zeilen von seinem Zwilling entfernt praktisch unsichtbar.
- Zahlen, die Genauigkeit verloren haben
- Am exakten Wert markiert. Eine Ganzzahl über 2^53-1 wird mit ihren ursprünglichen Ziffern angezeigt, mit dem Hinweis, dass die meisten Parser sie nicht so lesen werden.
Tastaturbedienung
Der Baum ist ein echter ARIA-Baum und kein Haufen anklickbarer Elemente, also funktioniert er so, wie ein Baum funktionieren soll: Pfeiltasten bewegen und klappen auf, Pos1 und Ende springen an die Enden, Eingabe und Leertaste schalten um. Er ist ohne Maus erreichbar und bedienbar und meldet sich korrekt an einen Screenreader.
Das ist in dieser Kategorie ungewöhnlich, was mehr über die Kategorie aussagt als über uns.
Wann der Baum, wann der rohe Text
Der Baum ist besser zur Orientierung: Welche Gestalt hat das, wo ist das Feld, das ich brauche, wie tief geht es. Roher Text ist besser zum Bearbeiten und zum Suchen, und der Editor behält die Volltextsuche mit Strg+F.
Für alles, was Sie wiederholt abfragen wollen, gehen Sie besser zum JSONPath-Tester. Einen Ausdruck schreiben, null Treffer sehen und nachjustieren ist eine schnellere Schleife als sich durch einen Baum zu klicken.
How to do this in code
Ein Payload vom Terminal aus erkunden, wenn kein Browser zur Hand ist.
sh jq
Der letzte Befehl ist der schnellste Weg, bei einer großen Datei die Frage „welche Felder hat das Ding“ zu beantworten.
# Top-level keys
jq 'keys' data.json
# The shape, without the values
jq 'walk(if type == "object" then map_values("...") else . end)' data.json
# Every distinct path in the document
jq -r 'paths | join(".")' data.json | sort -u py Python
import json
with open('data.json') as f:
data = json.load(f)
def walk(node, path=''):
if isinstance(node, dict):
for k, v in node.items():
yield from walk(v, f'{path}.{k}')
elif isinstance(node, list):
for i, v in enumerate(node):
yield from walk(v, f'{path}[{i}]')
else:
yield path, node
for path, value in walk(data):
print(path, '=', value) js Node
Ohne depth: null kürzt Node nach zwei Ebenen und druckt für den Rest [Object].
// console.dir gives you a collapsible tree in the terminal
console.dir(JSON.parse(text), { depth: null, colors: true }); Häufige Fragen
- Wie große Dateien lassen sich öffnen?
- Die Grenze ist nicht das Parsen, sondern der Speicher. Ein 10-MB-Dokument baut einen Baum von etwa 294 MB - auf einem Desktop bequem, auf einem Telefon knapp. Oberhalb von rund 25 MB merkt man es. Der Baum wird nur gebaut, wenn diese Seite ihn braucht, deshalb verarbeiten Formatierer und Validator deutlich größere Dateien.
- Warum klappen nur einige Zweige auf einmal auf?
- „Alles aufklappen“ ist bewusst auf sechs Ebenen begrenzt. Jeden Knoten eines großen Dokuments aufzuklappen erzeugt Hunderttausende Zeilen und hilft niemandem.
- Kann ich im Baum bearbeiten?
- Nein. Bearbeitet wird im Textbereich, der Rückgängig, Suche und volle Tastaturunterstützung hat. Ein Baumeditor ist ein anderes Produkt und ein schlechterer Texteditor.