在Java 中測試JSON 物件相等性並忽略子順序
對來自Web 服務的JSON 回應進行單元測試時,比較結果的相等性至關重要。但是,JSON 物件中子元素的順序不應影響比較。為了應對這個挑戰,讓我們來探索一個合適的 JSON 解析函式庫。
解決方案:Skyscreamer 的JSONAssert
Skyscreamer 的JSONAssert 提供了一種非嚴格模式,可以滿足兩個關鍵要求:
測試範例
<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中文網其他相關文章!