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

如何在 Java 中比較 JSON 物件而不考慮子順序?

Patricia Arquette
Patricia Arquette原創
2024-11-08 09:40:02772瀏覽

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

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

當對來自Web 服務的JSON 回應進行單元測試時,解析比較JSON 物件的函式庫忽略子順序可能是非常寶貴的。

解決方案:Skyscreamer 的 JSONAssert

Skyscreamer 的 JSONAssert 函式庫提供了一個解決方案。其「非嚴格」模式允許:

  • 物件可擴充性:期望值 {id:1} 匹配 {id:1,moredata:'x'}。
  • 鬆散陣列排序: ['dog','cat'] 等於 ['cat','dog']。

在嚴格模式下,JSONAssert 的功能與 json-lib 的測試類別類似。

用法範例

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

附加功能

  • 比較大型 JSON物件時清除錯誤訊息
  • 同時提供非嚴格和嚴格比較模式

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

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