java - 如何使用 GSON 比较两个 JSON 字符串是否相等?

标签 java json gson equality

我正在尝试比较两个 JSON 字符串是否相等。我找到了这个 solution它使用 Jackson 如下所示,但在我所有的项目中我都使用 GSON,所以我需要使用 GSON 做同样的事情。

ObjectMapper mapper = new ObjectMapper();
JsonNode tree1 = mapper.readTree(jsonString1);
JsonNode tree2 = mapper.readTree(jsonString2);
if (tree1.equals(tree2)) { 
  // yes, contents are equal -- note, ordering of arrays matters, objects not
} else { 
  // not equal
}

有什么方法可以使用 GSON 比较两个 JSON 字符串是否相等?

最佳答案

根据 this answer你可以使用这个:

JsonParser parser = new JsonParser();
JsonElement o1 = parser.parse("{a : {a : 2}, b : 2}");
JsonElement o2 = parser.parse("{b : 2, a : {a : 2}}");
assertEquals(o1, o2);

不幸的是,我猜这并不像您希望的那样干净,但它应该可以工作。

无论如何,查看该线程中的其他答案可能会有所帮助(尽管并非所有人都使用 GSON),因此如果这不起作用,也许其中之一可能。

关于java - 如何使用 GSON 比较两个 JSON 字符串是否相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25655404/

相关文章:

java - 在不使用数据 block API 的情况下将数据框保存为文本文件

android - Web 服务、JSON 和 Android。结果 WS 不能正常工作

java - 使用 GSON 将 JSON 反序列化为枚举

java - 整数等于法

java - 如何使用联合 SSO (SAML2) 调用 AtTask REST API

java - 掷骰子游戏 : How do i get the while loop in this code from going into an infinite loop?

python - 使用 Python 3.x 从网站中提取 JSON 数据

java - 从 Java 中的 JSON 响应获取字符串

java - 如何在Java中解码使用GSON创建的JSON文件?

java - 如何使用 Gson 反序列化继承公共(public)基类的类型?