Beste Weg der Rücksendung Unterschiede von zwei json-Dateien programmgesteuert
Habe ich zwei json-Dateien und ich möchte eine json-mit die Unterschiede. Ist es wichtig, dass nur die tatsächlichen Unterschiede der Inhalt gezeigt werden sollte, unabhängig von einer änderung der Reihenfolge einiger Elemente.
Was wäre der beste Weg das zu tun? Ich bin auf der Suche für eine Lösung, die so effizient wie möglich, da json
s kann enthalten viele Daten, und die Benutzer müssen Arbeitsplätze getan werden so schnell wie möglich.
Hinweis: Die json
s enthalten könnte, verschlüsselte Daten, die in verschiedenen tiefen. Jede Programmiersprache ist ok, aber ich würde lieber eine Antwort, dass könnte leicht in php implementiert.
Egal wie man es betrachtet, ich glaube, Sie brauchen nur zu gehen, durch jeden einzelnen Schlüssel. Es sei denn, Sie können sich darauf verlassen, in einer Art von Bezeichner-aber für eine solche Sache, die Sie benötigen, um aufwändige mehr
Ich habe eine ähnliche Frage beantwortet, hier: "[Mehrdimensionale Arrays prüfen, Unterschied][1]". Die Antwort könnte so modifiziert werden, begeben Sie sich in die äste, wenn nötig, durch den rekursiven Aufruf der "get_keys" und "compare_records" Methoden. [1]: stackoverflow.com/questions/15504734/...
sorry, habe es nicht gesehen
"unabhängig von der änderung der Reihenfolge einiger Elemente" - ich nehme an, Sie sprechen über Objekte. In Listen, um ist wichtig.
Sie sind Objekte versammelt, die von facebook mit der graph api. Ich könnte leicht Sie zu Sortieren, und das wäre kein problem mehr, aber die Sortierung könnte Kosten viel Zeit, wenn die Arbeit mit großen Datenmengen
Ich habe eine ähnliche Frage beantwortet, hier: "[Mehrdimensionale Arrays prüfen, Unterschied][1]". Die Antwort könnte so modifiziert werden, begeben Sie sich in die äste, wenn nötig, durch den rekursiven Aufruf der "get_keys" und "compare_records" Methoden. [1]: stackoverflow.com/questions/15504734/...
sorry, habe es nicht gesehen
"unabhängig von der änderung der Reihenfolge einiger Elemente" - ich nehme an, Sie sprechen über Objekte. In Listen, um ist wichtig.
Sie sind Objekte versammelt, die von facebook mit der graph api. Ich könnte leicht Sie zu Sortieren, und das wäre kein problem mehr, aber die Sortierung könnte Kosten viel Zeit, wenn die Arbeit mit großen Datenmengen
InformationsquelleAutor Bujanca Mihai | 2013-03-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Im Grunde, was Sie wollen, ist etwas ähnliches wie
array_diff_assoc
, sondern auf json-Objekten und rekursiv.Den
array_diff
Funktionen sind nicht rekursiv ist, weil der Referenz Probleme: es besteht die Möglichkeit der Zuordnung einer Referenz zu einem array um einen Eintrag des Arrays, das array unendlich rekursiv. Ich glaube nicht, dass es möglich ist, Holen Sie sich die gleiche situation mit einem json-Objekt, so dass eine rekursive Funktion sicher.Nehmen wir an, Sie möchten berechnen Sie die Differenz zwischen Objekt A und B, und haben das Ergebnis im Objekt C.
Das Prinzip ist, um eine Schleife über jedes Feld Eines (ein
foreach
tun sollte), und wenn:Die Bestellung Eines beachtet werden sollte.
json
s?Es ist nicht notwendig.
Hinweis: dieser Algorithmus nicht berücksichtigen, die Tasten, die nur erscheinen in B
das ist ok, danke
ein edit der Frage - Titel wäre angemessen, dann
InformationsquelleAutor didierc
Versuchen Sie es mit array_diff Funktion
InformationsquelleAutor tuffkid
Für diese Aufgabe können Sie versuchen, mit https://github.com/swaggest/json-diff
Wird es tun-Taste-wise rekursive Vergleich (Reihenfolge der keys ist egal) und produzieren JSON-Patch (angegeben in RFC-6902 von der IETF).
InformationsquelleAutor vearutop