首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较2个JSONObjects而不考虑值类型

比较2个JSONObjects而不考虑值类型
EN

Stack Overflow用户
提问于 2015-10-16 06:38:33
回答 1查看 173关注 0票数 0

我正在使用丢弃来从一些字符串中生成JSONObjects

我希望获得一个JSONObject (j1)中所有键的列表,并将这些值与另一个JSONObject (j2)中的键所附加的值进行比较。

我正在尝试创建一些我不关心值的类型的东西,因为值是字符串和整数,谁知道还有什么。

所以我做了一些类似的事情:

我想做一些像这样的事情

代码语言:javascript
复制
Object o1 = j1.get("key")
Object o2 = j2.get("key")

我可以将o1和o2转换成什么格式,以便比较它们的值?JSONObject?如果值为JSONArrays怎么办?

我试过JSONObject,我得到了一个

代码语言:javascript
复制
"ClassCastException org.codehaus.jettison.json.JSONObject$Null cannot be cast to org.codehaus.jettison.json." 

当我拥有的时候:

代码语言:javascript
复制
{"key1":null, .....

我对此有什么选择?

EN

回答 1

Stack Overflow用户

发布于 2015-10-16 06:44:49

假设您正在比较相等性的值(而不是相对于某种排序),您可以只使用Object.equals

代码语言:javascript
复制
o1.equals(o2)

因为即使在扩展Object的类中,签名也是

代码语言:javascript
复制
public boolean equals(Object other)

因此,您可以将任何对象与任何其他对象进行比较,不需要转换或显式转换(尽管equals的实现可能会在内部进行转换)。

如果它们中的一个或两个可以为空,则可以使用java.util.Objects.equals来避免潜在的NPE:

代码语言:javascript
复制
Objects.equals(o1, o2)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33159698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档