Heim  >  Artikel  >  Java  >  Wie vergleiche ich JSON-Objekte in Java ohne Überlegungen zur untergeordneten Reihenfolge?

Wie vergleiche ich JSON-Objekte in Java ohne Überlegungen zur untergeordneten Reihenfolge?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-05 03:23:02312Durchsuche

How to Compare JSON Objects in Java Without Child Order Considerations?

Vergleich von JSON-Objekten ohne Überlegungen zur untergeordneten Reihenfolge in Java

Unit-Tests von JSON-Antworten von Webdiensten erfordern häufig den Vergleich von JSON-Objekten. Allerdings führen Standardbibliotheken wie org.json Referenzvergleiche durch, die fehlschlagen, wenn die untergeordneten Objekte in unterschiedlicher Reihenfolge vorliegen.

Lösung: JSONAssert-Bibliothek

Die JSONAssert-Bibliothek von Skyscreamer bietet eine Robuste Lösung zum Vergleich von JSON-Objekten. Sein nicht-strikter Modus bietet Flexibilität durch:

  • Objekterweiterbarkeit zulassen: Der erwartete Wert {id:1} stimmt mit dem tatsächlichen Wert {id:1,moredata:'x' überein🎜>
  • Ignorieren der losen Array-Reihenfolge: ['dog','cat'] entspricht ['cat','dog']

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);
}</code>
Die klaren Fehlermeldungen von JSONAssert ermöglichen ein effizientes Debuggen, insbesondere bei großen JSON-Objekten.

Das obige ist der detaillierte Inhalt vonWie vergleiche ich JSON-Objekte in Java ohne Überlegungen zur untergeordneten Reihenfolge?. 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