java 比较两个json的变化_比较两个JSON不一样的地方,输出key
时间: 2024-02-26 10:57:48 浏览: 138
可以使用 JSON 库来比较两个 JSON,并输出不同之处的 key。以下是一个 Java 示例代码:
```java
import org.json.JSONObject;
import org.json.JSONException;
import java.util.Iterator;
public class JsonComparator {
public static void compareJson(JSONObject json1, JSONObject json2) throws JSONException {
Iterator<String> keys = json1.keys();
while (keys.hasNext()) {
String key = keys.next();
if (!json2.has(key)) {
System.out.println("Key '" + key + "' is not present in json2");
continue;
}
Object val1 = json1.get(key);
Object val2 = json2.get(key);
if (!val1.equals(val2)) {
System.out.println("Value for key '" + key + "' is different in json1 and json2:");
System.out.println(" " + val1);
System.out.println(" " + val2);
}
}
}
public static void main(String[] args) throws JSONException {
String jsonString1 = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
String jsonString2 = "{\"name\":\"John\",\"age\":35,\"occupation\":\"Teacher\"}";
JSONObject json1 = new JSONObject(jsonString1);
JSONObject json2 = new JSONObject(jsonString2);
compareJson(json1, json2);
}
}
```
在此示例中,我们使用了 JSON 库中的 JSONObject 类来表示和比较两个 JSON。compareJson() 方法接受两个 JSONObject 对象作为参数,并遍历第一个 JSON 的所有 key。对于每个 key,我们检查第二个 JSON 是否包含相同的 key。如果它不包含,则输出该 key 在第二个 JSON 中不存在的消息。如果第二个 JSON 包含相同的 key,则比较两个 JSON 的对应值。如果它们不相等,则输出该 key 的消息和两个值。在示例中,我们比较了以下两个 JSON:
```
{
"name": "John",
"age": 30,
"city": "New York"
}
{
"name": "John",
"age": 35,
"occupation": "Teacher"
}
```
输出结果为:
```
Value for key 'age' is different in json1 and json2:
30
35
Key 'city' is not present in json2
Key 'occupation' is not present in json1
```
阅读全文