JSON-Objekte auf Gleichheit testen und dabei die untergeordnete Reihenfolge in Java ignorieren
Bei Unit-Tests ist es üblich, von Webdiensten zurückgegebene JSON-Objekte zu vergleichen zu erwarteten Werten. Einige JSON-Bibliotheken führen jedoch möglicherweise strenge Referenzvergleiche durch, die brüchig sein und aufgrund von Unterschieden in der untergeordneten Reihenfolge fehlschlagen können.
Für diesen Zweck bietet die Skyscreamer JSONAssert-Bibliothek eine Lösung. Sein nicht-strikter Modus ermöglicht Flexibilität durch:
Im Gegensatz dazu verhält sich der strikte Modus konservativer, ähnlich der Testklasse von json-lib.
Um JSONAssert zu verwenden, können Tests wie folgt erstellt werden folgt:
<code class="java">@Test public void testGetFriends() { JSONObject data = getRESTData("/friends/367.json"); String expected = "{friends:[{id:123,name:\"Corby Page\"}" + ",{id:456,name:\"Solomon Duskis\"}]}"; JSONAssert.assertEquals(expected, data, false); // Non-strict mode }</code>
Die Parameter in JSONAssert.assertEquals() umfassen die erwartete JSON-Zeichenfolge, die tatsächliche Datenzeichenfolge und ein Flag, das den strikten Modus angibt oder nicht.
JSONAssert liefert klare Fehlermeldungen, Dies ist beim Vergleich großer JSON-Objekte von entscheidender Bedeutung und gewährleistet Robustheit bei Unit-Tests.
Das obige ist der detaillierte Inhalt vonWie vergleiche ich JSON-Objekte auf Gleichheit und ignoriere dabei die untergeordnete Reihenfolge in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!