使用org.json库

时间:2015-07-15 20:11:39

标签: java json

我在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: ""
    }
]

为什么会这样?

1 个答案:

答案 0 :(得分:0)

比较两个数组是否相等,即使元素相同也将返回false,因为除了JSONArray有一个显式的equals方法,你实际上是在比较地址。

相反,比较数组的每个元素是否相等。