Heim  >  Artikel  >  Java  >  Wie teste ich die JSON-Objektgleichheit und ignoriere die untergeordnete Reihenfolge in Java?

Wie teste ich die JSON-Objektgleichheit und ignoriere die untergeordnete Reihenfolge in Java?

Susan Sarandon
Susan SarandonOriginal
2024-11-05 01:17:02411Durchsuche

How to Test JSON Object Equality Ignoring Child Order in Java?

Testen der JSON-Objektgleichheit unter Ignorieren der untergeordneten Reihenfolge in Java

Beim Unit-Testen von JSON-Antworten von Webdiensten ist es wichtig, die Ergebnisse auf Gleichheit zu vergleichen . Allerdings sollte die Reihenfolge der untergeordneten Elemente innerhalb der JSON-Objekte keinen Einfluss auf den Vergleich haben. Um dieser Herausforderung zu begegnen, erkunden wir eine geeignete JSON-Parsing-Bibliothek.

Lösung: JSONAssert von Skyscreamer

JSONAssert von Skyscreamer bietet einen nicht strengen Modus, der zwei wichtige Anforderungen erfüllt:

  • Objekterweiterbarkeit: Ermöglicht zusätzliche Felder im tatsächlichen JSON-Objekt, die im erwarteten JSON-Objekt nicht vorhanden sind.
  • Lose Array-Reihenfolge: Betrachtet Arrays mit unterschiedlichen Elementreihenfolgen als gleich.

Testbeispiel

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

In diesem Beispiel gibt das erwartete JSON-Objekt ein Array von Freunden mit an IDs 123 und 456. Das eigentliche JSON-Objekt verfügt möglicherweise über zusätzliche Felder oder eine andere Reihenfolge der Elemente im Array. JSONAssert betrachtet sie im nicht strengen Modus weiterhin als gleich.

Das obige ist der detaillierte Inhalt vonWie teste ich die JSON-Objektgleichheit und ignoriere die untergeordnete 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