gpt4 book ai didi

java - 使用 org.json 库比较 Java 中的 JSON 对象

转载 作者:行者123 更新时间:2023-11-30 03:20:34 45 4
gpt4 key购买 nike

我在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/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com