0

我正在使用 Jettison 从一些字符串中制作 JSONObjects

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

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

所以我正在做类似的事情:

我想做类似的事情

Object o1 = j1.get("key")
Object o2 = j2.get("key")

我可以将 o1 和 o2 转换成什么,以便比较它们的值?JSON对象?如果值是 JSONArrays 怎么办?

我已经尝试过 JSONObject 并且我得到了一个

"ClassCastException org.codehaus.jettison.json.JSONObject$Null cannot be cast to org.codehaus.jettison.json." 

当我有:

{"key1":null, .....

我有什么选择?

4

1 回答 1

0

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

o1.equals(o2)

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

public boolean equals(Object other)

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

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

Objects.equals(o1, o2)
于 2015-10-15T22:44:49.150 回答