Ich möchte zwei JSON-Strings vergleichen, die eine riesige Hierarchie darstellen und wissen wollen, wo sie sich in Werten unterscheiden. Einige Werte werden jedoch zur Laufzeit generiert und sind dynamisch. Ich möchte diese bestimmten Knoten aus meinem Vergleich ignorieren.Ignoriere bestimmte Knoten/Attribute beim Vergleich zweier JSONs
Ich verwende derzeit JSONAssert von org.SkyScreamer, um den Vergleich zu tun. Es gibt mir eine schöne Konsolenausgabe, ignoriert aber keine Attribute.
für ex.
java.lang.AssertionError messageHeader.sentTime
expected:null
got:09082016 18:49:41.123
Jetzt kommt das dynamisch und sollte ignoriert werden. So etwas wie
JSONAssert.assertEquals(expectedJSONString, actualJSONString,JSONCompareMode, *list of attributes to be ignored*)
Es wäre toll, wenn jemand eine Lösung in JSONAssert vermuten lässt. Andere Wege sind jedoch auch willkommen.
Was passiert, wenn Sie JSONCompareMode als false angeben? ignoriert es die Knoten nicht? –
@ rishal-dev-singh Nein, spezifische Attribute werden nicht ignoriert – Prateik
@Pratik Als Alternative können Sie die Attribute vor dem Vergleich entfernen. Als eine weitere Alternative können Sie es selbst tun, z. http://stackoverflow.com/questions/2253750/compare-two-json-objects-in-java –