Verschachteltes JSON in Pfad-Wert-Paare umwandeln
Wählen Sie Abflachen oder Wiederaufbauen und fügen Sie die passende Eingabe ein. Prüfen Sie numerische Objektschlüssel und überlappende Pfade beim Wiederaufbau.
Läuft lokal in deinem Browser
Wählen Sie Abflachen oder Wiederaufbauen und fügen Sie die passende Eingabe ein. Prüfen Sie numerische Objektschlüssel und überlappende Pfade beim Wiederaufbau.
Läuft lokal in deinem Browser
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.
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}.
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.
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.