我在java中使用org.json
库来读取java程序中的json文件。我编写了以下方法来使用equals
方法比较两个JSON对象。但是,即使两个对象都相同,它也总是返回false。
private boolean isContentEqual(JSONObject o1, JSONObject o2) {
boolean isContentEqual = false;
try {
JSONArray contentArray1 = o1.getJSONArray("content");
JSONArray contentArray2 = o2.getJSONArray("content");
if (contentArray1.equals(contentArray2))
isContentEqual = true;
else
isContentEqual = false;
}
catch (Exception e) {
e.printStackTrace();
}
return isContentEqual;
}
当我运行此方法时,它始终返回false
我正在比较的json对象是
content: [
{
one: "sample text 1",
two: ""
},
{
one: "sample text 2",
two: ""
},
{
one: "sample text 3",
two: ""
},
{
one: "sample text 4",
two: ""
}
]
为什么会这样?
答案 0 :(得分:0)
比较两个数组是否相等,即使元素相同也将返回false,因为除了JSONArray有一个显式的equals方法,你实际上是在比较地址。
相反,比较数组的每个元素是否相等。