我在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: ""
}
]
为什么会发生这种情况?
最佳答案
你用JSON-Java吗?图书馆?
JSONArray 没有实现 equals()
因此
if(contentArray1.equals(contentArray2))
如果 contentArray1 != contentArray2
则始终返回 false。
奇怪的是,你需要使用 JSONArray 定义的imilar()方法才能使其工作:
if(contentArray1.similar(contentArray2))
关于java - 使用 org.json 库比较 Java 中的 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31440110/