Heim >Java >javaLernprogramm >Wie vergleiche ich JSON-Objekte ohne Berücksichtigung der untergeordneten Reihenfolge in Java?

Wie vergleiche ich JSON-Objekte ohne Berücksichtigung der untergeordneten Reihenfolge in Java?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-08 09:40:02977Durchsuche

How to Compare JSON Objects without Regarding Child Order in Java?

Vergleichen von JSON-Objekten in Java ohne Berücksichtigung der untergeordneten Reihenfolge

Beim Unit-Testen von JSON-Antworten von Webdiensten werden Bibliotheken analysiert, die JSON-Objekte vergleichen Die Missachtung der Kinderordnung kann von unschätzbarem Wert sein.

Lösung: Skyscreamer's JSONAssert

Die JSONAssert-Bibliothek von Skyscreamer bietet eine Lösung. Sein „nicht strikter“ Modus ermöglicht:

  • Objekterweiterbarkeit: Erwarteter Wert {id:1} entspricht {id:1,moredata:'x'}.
  • Loose Array-Reihenfolge : ['dog','cat'] entspricht ['cat','dog'].

Im strikten Modus funktioniert JSONAssert Ähnlich wie die Testklasse von json-lib.

Beispielverwendung

<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); // "false" for non-strict mode
}</code>

Zusätzliche Funktionen

  • Fehler löschen Meldungen beim Vergleich großer JSON-Objekte
  • Bietet sowohl nicht-strikten als auch strikten Vergleich Modi

Das obige ist der detaillierte Inhalt vonWie vergleiche ich JSON-Objekte ohne Berücksichtigung der untergeordneten Reihenfolge in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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