java org.json比较对象

时间:2016-05-16 14:06:02

标签: java json xml org.json jsonassert

我使用org.json将XML转换为JSON,我希望对我的解析过程进行单元测试(使用JUnit)。 但是,当我尝试使用json.equals比较对象时,它失败了。我了解jackson已正确实施equals方法。有没有办法用org.json单位测试对象的相等性?

...
JSONObject actual = XML.toJSONObject(xml);
JSONObject expected = new JSONObject().put("key","val");
assertEquals(expected, actual); // false
assertEquals(expected.toString(), actual.toString()) // true

2 个答案:

答案 0 :(得分:1)

你需要在github https://github.com/skyscreamer/JSONassert

使用JSONassert,avialable

答案 1 :(得分:0)

您也可以尝试使用 ModelAssert - https://github.com/webcompere/model-assert - 这看起来像这样:

JSONObject actual = XML.toJSONObject(xml);
JSONObject expected = new JSONObject().put("key","val");
assertJson(actual)
   .isEqualTo(expected);

但是,转换为 JSONObject 可能会影响键顺序等内容。在这种情况下,您可以放宽密钥顺序:

assertJson(actual)
   .where().keysInAnyOrder()
   .isEqualTo(expected);