首页  >  文章  >  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