Heim > Java > javaLernprogramm > Hauptteil

Wie vergleiche ich JSON-Objekte auf Gleichheit und ignoriere dabei die untergeordnete Reihenfolge in Java?

Barbara Streisand
Freigeben: 2024-11-05 00:44:02
Original
617 Leute haben es durchsucht

How to Compare JSON Objects for Equality While Ignoring Child Order in Java?

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:

  • Ermöglichung der Erweiterbarkeit von Objekten: Erwartete Objekte können zusätzliche Felder enthalten, ohne dass der Vergleich fehlschlägt.
  • Erlaubt lose Array-Reihenfolge: Arrays können sein außer Betrieb und bestehen den Vergleich trotzdem.

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!