首頁 > Java > java教程 > 主體

如何在 Java 中忽略子順序來測試 JSON 物件相等性?

Susan Sarandon
發布: 2024-11-05 01:17:02
原創
364 人瀏覽過

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

在Java 中測試JSON 物件相等性並忽略子順序

對來自Web 服務的JSON 回應進行單元測試時,比較結果的相等性至關重要。但是,JSON 物件中子元素的順序不應影響比較。為了應對這個挑戰,讓我們來探索一個合適的 JSON 解析函式庫。

解決方案:Skyscreamer 的JSONAssert

Skyscreamer 的JSONAssert 提供了一種非嚴格模式,可以滿足兩個關鍵要求:

  • 物件擴充性:允許實際JSON 物件中存在預期JSON 物件中不存在的其他欄位。
  • 鬆散數組排序: 將具有不同元素順序的陣列視為相等。

測試範例

<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>
登入後複製

在此範例中,預期的 JSON 物件指定一個友元陣列ID 123 和 456。實際的 JSON 物件可能具有其他欄位或陣列中元素的不同順序。 JSONAssert 在非嚴格模式下仍會認為它們相等。

以上是如何在 Java 中忽略子順序來測試 JSON 物件相等性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!