java判断两个jsonobject相等
时间: 2023-08-18 22:07:08 浏览: 67
要判断两个 JSONObject 对象是否相等,可以使用 JSONAssert 库。该库提供了一个 assertJSONEquals() 方法,可以比较两个 JSON 字符串是否相等。
示例代码:
```java
JSONObject expected = new JSONObject("{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}");
JSONObject actual = new JSONObject("{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}");
JSONAssert.assertEquals(expected.toString(), actual.toString(), false);
```
其中,第一个参数是期望的 JSON 字符串,第二个参数是实际的 JSON 字符串,第三个参数表示是否忽略顺序。如果两个 JSON 对象相等,则不会抛出异常;如果不相等,则会抛出 AssertionError 异常。
相关问题
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
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![apk](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)