我正在使用丢弃来从一些字符串中生成JSONObjects
我希望获得一个JSONObject (j1)中所有键的列表,并将这些值与另一个JSONObject (j2)中的键所附加的值进行比较。
我正在尝试创建一些我不关心值的类型的东西,因为值是字符串和整数,谁知道还有什么。
所以我做了一些类似的事情:
我想做一些像这样的事情
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, .....
我对此有什么选择?
发布于 2015-10-15 22:44:49
假设您正在比较相等性的值(而不是相对于某种排序),您可以只使用Object.equals
o1.equals(o2)
因为即使在扩展Object
的类中,签名也是
public boolean equals(Object other)
因此,您可以将任何对象与任何其他对象进行比较,不需要转换或显式转换(尽管equals
的实现可能会在内部进行转换)。
如果它们中的一个或两个可以为空,则可以使用java.util.Objects.equals
来避免潜在的NPE:
Objects.equals(o1, o2)
https://stackoverflow.com/questions/33159698
复制