我有两个对象
"Conditions1": [
{
"fieldToken": "value1",
"uniqueName": "value2",
"conditionOperator": ">",
"conditionValue": "value3"
},
{
"fieldToken": "value1",
"uniqueName": "value2",
"conditionOperator": "==",
"conditionValue": "value3"
}
]
"Conditions2": [
{
"fieldToken": "value1",
"uniqueName": "value2",
"conditionOperator": ">",
"conditionValue": "value3"
},
{
"fieldToken": "value1",
"uniqueName": "value2",
"conditionOperator": "==",
"conditionValue": "value3"
}
]
我想比较这两个对象是否相等。两个对象都是相同的,但是当我使用equals方法时,它返回false。我如何比较json对象的数组?
答案 0 :(得分:0)
如果使用包org.json,就会出现JSONObject这样的问题。您创建一个JSONObject:
import org.json.JSONObject;
JSONObject firstJson = new JSONObject();
JSONObject secondJson = new JSONObject();
firstJson.put("test1", "value1");
secondJson.put("test1", "value1"); // change value1 to something else to test
boolean result = firstJson.similar(secondJson);
System.out.println("result: " + result);
更改value1或要测试的任何值。它将根据您的测试值打印真或假。源代码说:"它们必须包含必须与相似值相关联的同一组名称。"可在此处找到来源:https://github.com/stleary/JSON-java/blob/master/JSONObject.java
要测试JSONObjects数组,请使用同一个包中的JSONArray,并将数组拆分为单个JSONObjects以进行比较。
答案 1 :(得分:-1)
因为你有两个对象。 把它放在两个变量中,然后为它们制作字符串。
e.g。
var a = Conditions1.toString();
var b = Conditions2.toString();
if(Conditions1.toString() === Conditions2.toString()){
console.log("matched")
}
注意:只有当两个对象相同时才会匹配以上两个。