java判断两个jsonobject相等
时间: 2023-08-15 09:06:18 浏览: 55
判断两个 JSONObject 是否相等,可以使用 JSONObject 类的 equals 方法进行比较。该方法会递归比较两个 JSONObject 的所有键值对是否相等。
示例代码如下:
```java
JSONObject obj1 = new JSONObject("{\"name\":\"John\", \"age\":30}");
JSONObject obj2 = new JSONObject("{\"name\":\"John\", \"age\":30}");
boolean isEqual = obj1.equals(obj2);
System.out.println("isEqual: " + isEqual); // 输出 isEqual: true
```
在上面的示例中,obj1 和 obj2 都包含相同的键值对,因此它们相等。equals 方法会返回 true。
相关问题
JSONObject 加入JSONArray时 判断是否存在相同
在向 JSONArray 中添加 JSONObject 时,可以先遍历 JSONArray 中的元素,判断是否有相同的 JSONObject。可以使用 equals() 方法对比两个 JSONObject 是否相等,如果相等则不需要添加到 JSONArray 中。
以下是示例代码:
```java
JSONObject obj1 = new JSONObject();
obj1.put("name", "Alice");
obj1.put("age", 20);
JSONObject obj2 = new JSONObject();
obj2.put("name", "Bob");
obj2.put("age", 25);
JSONArray jsonArray = new JSONArray();
jsonArray.put(obj1);
// 遍历 jsonArray,判断是否有相同的 JSONObject
boolean isExist = false;
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject obj = jsonArray.getJSONObject(i);
if (obj.equals(obj2)) {
isExist = true;
break;
}
}
if (!isExist) {
jsonArray.put(obj2);
}
```
上述代码中,首先创建了两个 JSONObject 对象 obj1 和 obj2,然后将 obj1 添加到 jsonArray 中。接着遍历 jsonArray,判断 obj2 是否已经存在于 jsonArray 中,如果不存在,则将 obj2 添加到 jsonArray 中。注意,这里使用了 JSONObject 的 equals() 方法比较两个 JSONObject 是否相等。
java 比较两个json的变化_比较两个JSON不一样的地方,输出key
可以使用 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
```