首頁  >  文章  >  Java  >  如何在不考慮子順序的情況下比較 Java 中的 JSON 物件?

如何在不考慮子順序的情況下比較 Java 中的 JSON 物件?

Patricia Arquette
Patricia Arquette原創
2024-11-05 03:23:02310瀏覽

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

在 Java 中比較不考慮子順序的 JSON 物件

來自 Web 服務的單元測試 JSON 回應物件通常需要比較 JSON 回應物件。但是,像 org.json 這樣的標準函式庫會執行引用比較,如果子物件的順序不同,則會失敗。

解決方案:JSONAssert 庫

Skyscreamer 的 JSONAssert 庫提供了用於比較 JSON 物件的強大解決方案。其非嚴格模式透過以下方式提供彈性:

  • 允許物件擴充性:期望值{id:1} 將符合實際值{id:1,moredata:'x'}
  • 忽略鬆散數組順序: ['dog','cat'] 將等於['cat','dog']

用法示例:

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

JSONAssert 清晰的失敗訊息有助於高效調試,尤其是對於大型JSON 物件。

以上是如何在不考慮子順序的情況下比較 Java 中的 JSON 物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn