java json串比较是否相同
时间: 2023-08-11 13:17:41 浏览: 91
java处理JSON格式数据的通用类
要判断两个 JSON 串是否完全相同,包括顺序、缩进等信息,可以将两个 JSON 串转换成标准格式(例如按照字典序排序键值对、去掉空格等),然后进行比较。具体实现可以使用如下代码:
```java
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
public class JsonCompare {
public static void main(String[] args) throws Exception {
String json1 = "{ \"name\": \"Alice\", \"age\": 20 }";
String json2 = "{ \"age\": 20, \"name\": \"Alice\" }";
ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS, true);
JsonNode tree1 = mapper.readTree(json1);
String sortedJson1 = mapper.writeValueAsString(tree1);
JsonNode tree2 = mapper.readTree(json2);
String sortedJson2 = mapper.writeValueAsString(tree2);
if (sortedJson1.equals(sortedJson2)) {
System.out.println("json1 equals json2");
} else {
System.out.println("json1 not equals json2");
}
}
}
```
在上面的代码中,我们使用 Jackson 库将 JSON 串转换为 `JsonNode` 对象,然后使用 `writeValueAsString()` 方法将 `JsonNode` 对象转换为标准格式的 JSON 串。最后比较两个标准格式的 JSON 串是否相等,如果相等,则说明两个 JSON 串完全相同。
阅读全文