首页  >  文章  >  Java  >  如何在 Java 中忽略子顺序来测试 JSON 对象相等性?

如何在 Java 中忽略子顺序来测试 JSON 对象相等性?

Susan Sarandon
Susan Sarandon原创
2024-11-05 01:17:02365浏览

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn