2015-10-15 54 views
0

我使用拋棄,使一個JSONObjects出來的一些字符串比較2和一個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, ..... 

我有與哪些選擇?

回答

0

假設你是平等比較值(而不是,比方說,相對於某種排序),您可以只使用Object.equals

o1.equals(o2) 

自簽名,甚至在延長Object班,是

public boolean equals(Object other) 

這樣你就可以在任何對象進行比較,以任何其他沒有轉換或顯式轉換需要(的equals實現可能會做內部鑄造,雖然)。

如果一個或兩個人可以爲空,則可以使用java.util.Objects.equals,以避免潛在的NPE:

Objects.equals(o1, o2) 
+0

優秀!這樣可行。但如果一個JSONObject具有{「key1」:「100」,另一個具有{「key1」:100(其中一個具有字符串值,另一個具有int值),我該怎麼辦? – user1126515