JSON in Pfade abflachen und wieder aufbauen

JSON einfügen, Abflachen oder Wiederherstellen wählen und Ausführen drücken. Abflachen macht aus jedem Endwert einen Pfad wie user.profile.roles.0; Wiederherstellen liest ein flaches Objekt aus Pfaden und baut das verschachtelte Dokument auf. Als Trenner dient Punkt oder Schrägstrich; ein Schlüssel, der den Trenner enthält, wird mit Backslash maskiert, sodass user.profile.roles.0 und ein wörtlicher Schlüssel „a.b“ unterscheidbar bleiben.

Alles läuft per Browser-JavaScript in der Seite, nichts wird hochgeladen, und das Ergebnis lässt sich kopieren oder als kivtools-json-flatten.json bzw. kivtools-json-unflatten.json herunterladen.

  1. JSON in das Eingabefeld einfügen oder Beispiel laden drücken, um mit dem Beispieldokument zu starten.
  2. Abflachen wählen, um das Dokument in Pfad/Wert-Paare zu verwandeln, oder Wiederherstellen, um es aus Pfaden aufzubauen.
  3. Pfadtrenner wählen: Punkt (.) oder Schrägstrich (/). Schlüssel mit dem Trenner werden automatisch maskiert.
  4. Ausführen drücken. Das Ergebnis erscheint im Ausgabefeld mit Pfadanzahl, Bytegröße und maximaler Tiefe.
  5. Ergebnis kopieren oder herunterladen; mit Leeren das Formular zurücksetzen.

Was der Parser behält, wie Arrays und Konflikte behandelt werden und was die Exporte enthalten

Was der Parser behält

Werte werden ohne Typwechsel übernommen: Strings bleiben Strings, Zahlen bleiben Zahlen, null bleibt null. Schlüssel, die in JavaScript gefährlich wirken — __proto__, constructor, prototype — sind hier gewöhnliche Datenschlüssel: das Werkzeug baut prototypenlose Objekte, daher behält Abflachen von {"__proto__": 1} den Pfad „__proto__“ und Wiederherstellen erzeugt denselben Schlüssel.

Leere Objekte und Arrays bleiben standardmäßig erhalten. „Leere Objekte und Arrays behalten“ ausschalten, um sie zu verwerfen; die Metrik meldet dann, wie viele Container verworfen wurden — 2 für {"keep":{},"drop":[],"value":1}.

Wie aus Pfaden wieder Arrays werden

Wiederherstellen baut nur dann ein Array, wenn ein Knoten genau die dichten numerischen Schlüssel 0…n-1 trägt — das hinterlässt ein echtes Array beim Abflachen. Lückenhafte Pfade wie 0 und 2 oder ein Knoten, der 0, 1 und x mischt, bleiben Objektschlüssel: kein Schlüssel geht verloren, keine null-Lücke entsteht.

Ein Pfad, der denselben Schlüssel in zwei Formen braucht, wird gemeldet statt still überschrieben: das flache Objekt {"a":1,"a.b":2} antwortet „Der Pfad „a.b“ steht im Konflikt mit einem früheren Schlüssel.“, und die vorherige Ausgabe wird geleert, damit ein altes Ergebnis nicht für den neuen Lauf gehalten wird.

Tiefe, Größe und Exporte

Abflachen durchläuft das Dokument iterativ: ein 20.000-fach verschachtelter Wert wird ohne Stack-Überlauf zu einem einzigen Pfad. Das Wiederherstellen eines solchen Dokuments erreicht die Grenze des JSON-Schreibers im Browser; dann zeigt das Werkzeug seine lokalisierte Meldung zur zu tiefen Verschachtelung statt eines rohen Engine-Fehlers.

JSON-Syntaxfehler behalten nach einem lokalisierten Präfix die Positionsangabe der Engine (etwa „line 1 column 9“), denn damit lässt sich eine fehlerhafte Einfügung korrigieren. Downloads heißen je nach Modus kivtools-json-flatten.json oder kivtools-json-unflatten.json.

Zuletzt verwendet: