我正在使用Jettison从一些字符串
中制作JSONObjects我想获取一个JSONObject(j1)中所有键的列表,并将这些值与附加到另一个JSONObject(j2)中的键的值进行比较。
我正在尝试创建一些我不关心值的类型的东西,因为值是字符串和int并且谁知道还有什么。
所以我做的事情是:
我想做点什么
Object o1 = j1.get("key")
Object o2 = j2.get("key")
我可以转换o1& o2进入所以我可以比较他们的价值观? JSONObject的?如果值是JSONArrays会怎么样?
我尝试了JSONObject,然后得到了
"ClassCastException org.codehaus.jettison.json.JSONObject$Null cannot be cast to org.codehaus.jettison.json."
当我有:
{"key1":null, .....
我有什么选择?
答案 0 :(得分:0)
假设您正在比较相等的值(而不是相对于某些排序),您可以使用Object.equals
:
o1.equals(o2)
因为即使在扩展Object
的类中,签名也是
public boolean equals(Object other)
所以你可以将任何对象与任何其他对象进行比较,不需要转换或显式转换(equals
的实现可能会在内部进行转换)。
如果其中一个或两个都可以为null,则可以使用java.util.Objects.equals
来避免潜在的NPE:
Objects.equals(o1, o2)