Funktionsleitfaden macOSWindows

Vergleichen Sie strukturierte Dateien nach Bedeutung, nicht nach Zeilenposition

Vergleichen Sie JSON, YAML, TOML, INI, Property Lists, XML, CSV, OpenAPI und JSON Schema nach Schlüsseln, Pfaden, Zeilen und Werten statt nach Zeilenposition. Zwei Dateien in verschiedenen Datenformaten, etwa JSON und TOML, werden nach ihren Daten verglichen. Listen von Datensätzen werden automatisch über ein Feld id, _id, uuid oder key zugeordnet und XML-Elemente über ein Schlüsselattribut wie id oder name; Zahlen werden nach ihrem Wert verglichen.

Funktionsübersicht

Wie kann ich semantisch strukturierte Unterschiede in Diff Anything verwenden?

Vergleichen Sie JSON, YAML, TOML, INI, Property Lists, XML, CSV, OpenAPI und JSON Schema nach Schlüsseln, Pfaden, Zeilen und Werten statt nach Zeilenposition. Zwei Dateien in verschiedenen Datenformaten, etwa JSON und TOML, werden nach ihren Daten verglichen. Listen von Datensätzen werden automatisch über ein Feld id, _id, uuid oder key zugeordnet und XML-Elemente über ein Schlüsselattribut wie id oder name; Zahlen werden nach ihrem Wert verglichen.

Erkennen Sie sinnvolle Codeänderungen mit Smart Diff in 117 Editorsprachen. Wechseln Sie zu Line Diff, wann immer Sie eine genaue Zeile-für-Zeile-Überprüfung wünschen. In beiden Ansichten haben Sie die Syntaxhervorhebung und -bearbeitung stets zur Hand. Durch Ignorieren von Regeln werden Zeitstempel, IDs, Kommentare oder feste Spalten aus einem Textvergleich ausgeschlossen. Mit „Diese Zeilen ausrichten“ werden manuell zwei Zeilen gepaart, bei denen die automatische Übereinstimmung nicht die gewünschte ist.

Diff Anything vergleicht zwei JSON-Dateien, wobei Benutzerdatensätze anhand der ID übereinstimmen und ein geänderter Rollenwert ausgewählt wurde
Der semantische Modus listet geänderte Pfade und Werte auf. Hier gleicht eine Vergleichsregel nach ID Benutzerdatensätze ab, sodass in einer neu geordneten Liste nur die tatsächlichen Änderungen angezeigt werden. Vollbild anzeigen

Wie es funktioniert

Beide Dateien werden in Daten analysiert, bevor etwas verglichen wird

Eine Konfigurationsdatei oder API-Definition kann von einem Tool neu geschrieben werden, ohne dass sich Werte ändern: Schlüssel anders sortiert, Einrückung erweitert, XML-Attribute in einer anderen Reihenfolge aufgelistet. Ein Leitungsdiff meldet alles. Strukturierte Modi lesen beide Dateien zuerst in Daten ein, sodass nur Unterschiede in den Daten selbst aufgelistet werden.

Jedes Ergebnis benennt den Ort der Änderung, z. B. $.server.port, die Art der Änderung (hinzugefügt, entfernt, geändert oder eine Typänderung) und den Wert auf jeder Seite. Listen von Datensätzen mit einer eindeutigen ID, _id, uuid oder einem Schlüsselfeld werden durch dieses Feld gepaart, sodass ein eingefügter Datensatz als hinzugefügt angezeigt wird, anstatt den Rest zu verschieben. Wenn ein Array dieselben Elemente in einer neuen Reihenfolge enthält, wird dies einmal als Neuordnung und nicht als Änderung an jeder Position gemeldet.

Drei Ansichten zeigen das gleiche Ergebnis auf unterschiedliche Weise. Semantik ist die Liste der Unterschiede. Baum zeigt beide Dokumente als erweiterbare Bäume nebeneinander. Raw zeigt beide Seiten als normalisierten Text an. Suchpfade filtern die Liste, durch Deaktivieren des Kontrollkästchens „Unverändert“ werden übereinstimmende Werte ausgeblendet, und „Pfad kopieren“ fügt den ausgewählten Speicherort in die Zwischenablage ein.

Formate

Was jeder strukturierte Modus liest

Wählen Sie den Modus aus dem Vergleichstyp-Menü aus oder lassen Sie ihn automatisch aus der Erweiterung und dem Inhalt auswählen:

  • JSON: Objekte werden nach Schlüssel verglichen, Zahlen nach Wert, Kommentare sind zulässig und eine Warnung, wenn ein Schlüssel zweimal erscheint. Semantische Regeln können erwartetes Rauschen verbergen.
  • YAML: werden als Daten verglichen, sodass Kommentare und Layout niemals als Änderungen gelten, mit denselben semantischen Regeln wie JSON.
  • TOML und INI: Tabellen, Abschnitte, Schlüssel und Werte werden als Daten mit denselben semantischen Regeln verglichen. INI-Werte sind Text und ein Schlüssel ohne Wert wird als solcher gemeldet.
  • Eigenschaftslisten: XML und binäre Plisten anhand ihrer Daten verglichen, auch untereinander oder mit JSON, YAML oder TOML. Datumsangaben werden als ISO 8601-Text und große Datenmengen anhand ihrer Länge und SHA-256 verglichen.
  • Zwei unterschiedliche Datenformate, beispielsweise eine JSON-Datei und eine TOML-Datei, werden anhand ihrer Daten verglichen, wobei jedes in seinem eigenen Format gelesen wird, mit einem entsprechenden Hinweis.
  • XML: Elemente, Attribute und Text mit lesbaren XPath-Speicherorten. Namespace-Präfixe werden mit dem Namespace abgeglichen, auf den sie verweisen. Wiederholte Elemente werden nach Namen und einem Schlüsselattribut wie ID oder Name abgeglichen, und ungeordnete Elemente ignorieren die Reihenfolge der untergeordneten Elemente unter einem von Ihnen aufgelisteten übergeordneten Element.
  • CSV: Zeilen und Zellen, wobei das Trennzeichen für jede Datei erkannt wird (Komma, Tabulator, Semikolon oder Pipe), es sei denn, Sie geben eines in das Feld Trennzeichen ein, und Zeilen gepaart nach Zeilenindex oder nach den Spalten, die Sie im Menü „Taste“ und unter den CSV-Optionen auswählen.
  • API-Schema: OpenAPI- und JSON-Schema in JSON oder YAML sowie GraphQL-Typen und SQL CREATE TABLE-Anweisungen. Wahrscheinliche Breaking Changes tragen einen Regelcode und werden unter dem Breaking-Filter angezeigt.

Werte kopieren

Verschieben eines Werts von einer Datei in die andere

Um einen Wert anzuzeigen, wählen Sie ihn in der Liste aus und klicken Sie auf die Pfeilschaltfläche, die auf die Datei zeigt, die Sie ändern möchten: Rechts → links oder Links → rechts. Um mehrere auf einmal zu verschieben, markieren Sie sie im Bereich „Unterschiede“ als „Überprüft“ und verwenden Sie „Überprüft links übernehmen“ oder „Überprüft übernehmen rechts“.

JSON, TOML, INI, XML-Eigenschaftsliste und HTTP-Antwortziele werden an Ort und Stelle bearbeitet, sodass ihre Kommentare, Einrückungen und ihr Layout beibehalten werden; Eine binäre Eigenschaftenliste wird verglichen, aber nie geschrieben. YAML- und XML-Ziele werden aus ihren Daten neu erstellt und die App fordert zunächst eine Bestätigung an, da Kommentare und Layout nicht beibehalten werden. Ein API-Schema in JSON behält sein Layout und eines in YAML wird nach einer Bestätigung neu erstellt. Durch „Rückgängig“ wird die Änderung rückgängig gemacht und es wird nichts auf die Festplatte geschrieben, bis Sie „Geänderte Dateien speichern“ wählen. CSV-Ergebnisse haben keine Kopierschaltflächen; Sie dienen der Überprüfung.

Kostenlos und Pro

Wie viel davon deckt der kostenlose Plan ab?

JSON ist im kostenlosen Plan vollständig, einschließlich aller semantischen Regeln und Kopierwerte. YAML, TOML, INI, Eigenschaftsliste, XML, CSV und API Schema sind im Modusmenü mit „Vorschau“ gekennzeichnet, und YAML, TOML, INI und Eigenschaftslisten können dieselben semantischen Regeln verwenden: Jede zeigt ihr vollständiges Ergebnis für Dateien mit bis zu 5 MB pro Seite, außer CSV, das die ersten 100 Zeilen anzeigt. Alle zählen für 10 neue Vergleichssitzungen pro Tag.

Pro hebt diese Beschränkungen auf, speichert Ihre Regeln und Bewertungsnoten in einem Profil, exportiert Berichte und führt jeden strukturierten Modus über die Befehlszeile aus. Die Regelcodes des API-Schemas sind eine Überprüfungshilfe: $ref-Referenzen werden nicht aufgelöst und Anforderungs- und Antwortschemata werden mit denselben Regeln überprüft. Lesen Sie daher jedes markierte Element, bevor Sie darauf reagieren.

Im Workflow

So verwenden Sie es

  1. Öffnen Sie die beiden Dateien

    Wählen Sie die alte und neue Version. Sehen Sie im Menü „Vergleichstyp“ nach, welcher Modus automatisch ausgewählt wurde.

  2. Erwartetes Rauschen entfernen

    Semantische Regeln für JSON, YAML, TOML, INI oder Eigenschaftslisten, ungeordnete XML-Elemente oder CSV-Schlüssel und ignorierte Spalten für Werte hinzufügen, von denen Sie erwarten, dass sie sich unterscheiden.

  3. Überprüfen Sie die semantische Liste

    Filtern Sie nach „Hinzugefügt“, „Entfernt“, „Geändert“ oder „Typen“ und öffnen Sie die Baumansicht, wenn Sie die umgebende Struktur benötigen.

  4. Kopieren Sie, was gehört

    Markieren Sie die von Ihnen akzeptierten Änderungen als Überprüft, wenden Sie sie auf die andere Seite an und speichern Sie sie.

Nützlich in der Praxis

Wann man es verwenden sollte

Zugehöriges Handbuch

Den passenden Vergleichstyp wählen

Quellen wählen, die automatische Erkennung verstehen und den Vergleichstyp nehmen, der Ihre Frage beantwortet.

Lesen Sie den Leitfaden

Direkte Antworten

Fragen zu semantisch strukturierten Unterschieden.

Erzeugt eine Änderung der Tastenreihenfolge Unterschiede?

Nein. Objekte werden Schlüssel für Schlüssel und XML-Attribute nach Namen verglichen, sodass dieselben Daten in einer anderen Reihenfolge als gleich verglichen werden.

Welche strukturierten Modi haben Einstellungen?

JSON, YAML, TOML, INI und Eigenschaftsliste haben semantische Regeln, XML hat ungeordnete Elemente, CSV hat das Tastenmenü und CSV-Optionen und HTTP Response hat ignorierte Header. API Schema vergleicht mit festen Regeln.

Kann ich eine JSON-Datei mit einer TOML- oder YAML-Datei vergleichen?

Ja. Zwei Dateien in unterschiedlichen Datenformaten werden anhand ihrer Daten verglichen, wobei jede Datei in ihrem eigenen Format gelesen wird, sodass eine von einem Format in ein anderes konvertierte Konfiguration nur die geänderten Werte anzeigt. Beim Kopieren einer Änderung wird diese im eigenen Format des Ziels geschrieben oder abgelehnt, mit der Begründung, dass dieses Format den Wert nicht halten kann.

Ist der API-Schema-Modus eine vollständige Kompatibilitätsprüfung?

Nein. Es kennzeichnet Änderungen, die häufig Clients beschädigen, z. B. eine entfernte Operation oder ein neues erforderliches Feld. Da $ref-Referenzen nicht aufgelöst werden, muss jedes markierte Element dennoch von einer Person überprüft werden.

Kostenlos & Pro: Was ist enthalten

Verfügbar im Mac App Store und Microsoft Store. Mit der kostenlosen Desktop-Nutzung können Sie jede Vergleichs-Engine für Dateien bis zu 5 MiB pro Seite und 10 neue Vergleichssitzungen pro lokalem Tag ausprobieren; Sammlungsvorschauen zeigen die ersten 100 Elemente, binäre Vergleiche die ersten 100 Byte-Unterschiede und PDF-Vorschauen die ersten drei Seiten. Der Nur-Text-, JSON- und Jupyter-Notebook-Vergleich ist vollständig und das Öffnen von Dateien über den Finder oder den Datei-Explorer, diffanything://-Links und AppleScript ist kostenlos. Die kostenlose CLI unterstützt Text, JSON und Notebooks. Durch einen einmaligen Pro-Kauf werden die Vorschau- und Sitzungsbeschränkungen aufgehoben und größere Quellen innerhalb technischer Grenzen, gespeicherte Profile und Verlauf, Speichern von Ordner-Snapshots, Exportieren und Drucken von Berichten, JSON-Patch-Export, Anwenden von Patches, Drei-Wege-Zusammenführung und Konfliktlösung, der Git-Merge-Treiber und das Merge-Tool, Ordnersynchronisierung, Batch-Manifeste, vertrauenswürdige Präprozessoren und alle CLI-Modi freigeschaltet.

Weiter

Alle Diff Anything-Funktionen anzeigen.

Zurück zu den Funktionen