ForHosting KIT · Daten & Dateien

JSON-Objekte vergleichen und geänderte Schlüssel finden

Ein Textvergleich lässt kleine JSON-Änderungen oft unnötig umfangreich wirken, weil Einrückung, Schlüsselreihenfolge und Formatierung die eigentlichen Datenänderungen verdecken.

● BetaKostenlos · im Browser
Nutzen Sie es über WebAPIE-MailTelegramApp bald

Läuft direkt in Ihrem Browser – kostenlos. Ihre Datei verlässt Ihren Browser nicht und wird an keinen Server übertragen.

Dieses Werkzeug vergleicht geparste Werte, trennt hinzugefügte, entfernte und geänderte Schlüssel, durchsucht gemeinsame verschachtelte Objekte und liefert eindeutige JSON-Pointer-Pfade. Arrays behalten ihre Reihenfolge und werden als Ganzes verglichen. Der Vorgang ist deterministisch, benötigt kein Netzwerk und weist Arrays, primitive Werte sowie null auf der obersten Ebene zurück.

Einen strukturellen JSON-Unterschied lesen

Das Ergebnis ordnet Abweichungen drei Sammlungen zu: hinzugefügt, entfernt und geändert. Ein hinzugefügter Eintrag kommt nur im neuen Objekt vor, ein entfernter nur im ursprünglichen; ein geänderter enthält den vorherigen und den neuen Wert. Jeder Eintrag besitzt einen JSON-Pointer-Pfad mit führendem Schrägstrich. /profile/name bezeichnet etwa name innerhalb von profile. Ein Schrägstrich in einem Schlüsselnamen wird zu ~1, eine Tilde zu ~0. Dadurch bleiben auch ungewöhnliche Namen eindeutig. Die sortierte Verarbeitung erzeugt stabile Antworten. Der Block counts fasst Kategorien und Gesamtzahl zusammen. Sind alle drei Listen leer, sind die Objekte strukturell gleich, selbst wenn Einrückung oder Schlüsselreihenfolge im ursprünglichen Text abweichen.

Verschachtelte Objekte und Arrays behandeln

Enthält derselbe Schlüssel auf beiden Seiten ein Objekt, steigt der Vergleich bis zur tatsächlich abweichenden Eigenschaft hinab. Ändert sich nur profile.active, lautet der Pfad /profile/active. Ein vollständig neuer oder entfernter Schlüssel wird dagegen einmal mit seinem gesamten Wert gemeldet; seine Nachkommen werden nicht einzeln aufgeführt. Arrays gelten als geordnete JSON-Werte und werden vollständig verglichen. Einfügen, Löschen, Umordnen oder Bearbeiten eines Elements markiert daher die Array-Eigenschaft als geändert. Primitive Werte und null werden direkt verglichen; auch ein Typwechsel zählt als Änderung. Nur für die beiden Wurzelwerte gilt eine strengere Regel: before und after müssen JSON-Objekte ungleich null sein.

Unterschiede in Prüfungen und Automatisierung nutzen

Übergeben Sie das ursprüngliche Objekt als before und den Vorschlag als after. Das Browserwerkzeug läuft lokal; eine API-Anfrage kostet $0.002 und liefert dieselbe deterministische Struktur. Sie können eine Bereitstellung stoppen, wenn geschützte Einstellungen verschwinden, ausschließlich freigegebene Pfade zulassen oder kompakte Änderungen für Audits speichern. Weil Formatierung und Reihenfolge keine Fehlalarme erzeugen, eignet sich das Ergebnis für Konfigurationen, Webhooks, Flags, Berechtigungen und normalisierte Antworten. Behandeln Sie Pfade als JSON Pointer und beachten Sie ihre Kategorie. Bei Arrays erhalten Sie die vollständigen Werte und können anschließend fachliche Regeln anwenden. Eine ungültige Wurzel erzeugt einen klaren Eingabefehler statt eines irreführend leeren Ergebnisses.

Konfigurationsversionen prüfen

Vergleichen Sie aktive und geplante Konfigurationen ohne Rauschen durch Leerraum oder Reihenfolge.

Webhook-Entwicklung protokollieren

Erfassen Sie neue, entfernte oder geänderte verschachtelte Felder zwischen normalisierten Beispielen.

Freigegebene Einstellungen schützen

Prüfen Sie Pfade in CI und stoppen Sie Änderungen an geschützten Optionen.

Welches Pfadformat verwendet das Ergebnis?

Jeder Pfad ist ein JSON Pointer nach RFC 6901; Schrägstriche in Schlüsseln werden ~1 und Tilden ~0.

Gilt eine andere Schlüsselreihenfolge als Änderung?

Nein. Objekte werden anhand ihrer Schlüssel und Werte verglichen, nicht anhand der Serialisierungsreihenfolge.

Wie werden Arrays verglichen?

Arrays sind geordnete Gesamtwerte. Jede Bearbeitung, Einfügung, Löschung oder Umordnung markiert das Array.

Kann ich zwei Arrays auf Wurzelebene vergleichen?

Nein. before und after müssen JSON-Objekte ungleich null sein; andere Wurzeln verursachen einen Eingabefehler.

Was kostet eine API-Anfrage?

Das Browserwerkzeug läuft lokal kostenlos. Jede API-Anfrage verwendet den veröffentlichten Grundpreis von $0.002.

Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.

POSThttps://api.kit.forhosting.com/data/diff-json-objects

Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.

curl -X POST https://api.kit.forhosting.com/data/diff-json-objects \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"before":{"name":"Ada","profile":{"active":true,"score":8},"roles":["reader"]},"after":{"name":"Ada","profile":{"active":false,"score":8,"city":"London"},"roles":["reader","editor"]}}'
{
  "before": {
    "name": "Ada",
    "profile": {
      "active": true,
      "score": 8
    },
    "roles": [
      "reader"
    ]
  },
  "after": {
    "name": "Ada",
    "profile": {
      "active": false,
      "score": 8,
      "city": "London"
    },
    "roles": [
      "reader",
      "editor"
    ]
  }
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "data.diff_json_objects",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.

pro Anfrage$0.002

Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.

max_mb25
HTTPCodeBedeutung
401unauthorizedDer API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer).
402insufficient_balanceIhr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht.
404unknown_typeUnbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog.
429rate_limitedZu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt.

Vollständige KIT-Dokumentation lesen →