Gibt es Java-Bibliotheken, die zwei JSON-Zeichenfolgen unterscheiden und eine Baumstruktur generieren können, die Sie durchlaufen können, um herauszufinden, welche Knoten hinzugefügt, welche Knoten gelöscht und welche Knoten geändert wurden?
Ich habe zwei Java-Bibliotheken gefunden, die zwei JSON-Strings unterscheiden und mitteilen können, was hinzugefügt, gelöscht und geändert wurde. Beide Bibliotheken erzeugen Ausgaben gemäß RFC 6902 (JSON Patch):
zjsonpatch ist besser, weil es das Einfügen/Entfernen von Elementen aus Arrays erkennen kann. Fge json-patch kann damit nicht umgehen - wenn ein Element in die Mitte eines Arrays eingefügt wird, denkt es, dass dieses Element und jedes Element danach geändert wurde, da sie alle um eins verschoben werden.
Beispielverwendung für zjsonpatch:
ObjectMapper jackson = new ObjectMapper();
JsonNode beforeNode = jackson.readTree(beforeString);
JsonNode afterNode = jackson.readTree(afterString);
JsonNode patchNode = JsonDiff.asJson(beforeNode, afterNode);
String diff = patchNode.toString();
Ich habe einige Nachforschungen angestellt, um eine Diff-Generierungsbibliothek für mich fertigzustellen. Der von @pacoverflow aufgezeigte Fehler scheint behoben zu sein. Ich bin diesem Problem nicht begegnet. Meine Stimme ist aus folgenden Gründen für fge json-patch :
cheenu