在 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中文网其他相关文章!