2012-08-07 53 views
0

我知道存在類似的問題,但它們中的任何一個對我(或似乎是有用的)都是有用的。我該如何使用JSON Jersey將字符串格式的嵌套Object解組?

我需要執行以下語句:如果上述,我收到以下錯誤我做的代碼

ClassA a = new ClassA(); 
String JSON_str = objectMapper.writeValueAsString(a); 

ClassA a1 = (ClassA)objectMapper.readValue(JSON_str, ClassA.class); 
ClassB b = (ClassB)a1.getAttribute1(); 

java.util.LinkedHashMap中不能轉換到ClassB的

getAttribute1方法返回定義爲「Object attribute1」的ClassA屬性1。 它將在運行時用類B的對象進行初始化。

請幫我^^。

預先感謝您。 Leonardo

回答

0

由於錯誤提示,a1.getAttribute1()返回類型爲java.util.LinkedHashMap的對象。因此,要麼改變你的代碼:

ClassA a1 = (ClassA)objectMapper.readValue(JSON_str, ClassA.class); 
java.util.LinkedHashMap b = (java.util.LinkedHashMap)a1.getAttribute1(); 

或檢查ClassA的用於填充這一領域的代碼,並試圖瞭解爲什麼它不與ClassB實例pupulating的對象。

+0

嗨,謝謝你的答案,但問題不在於我填充對象a的方式,問題是由於某種原因將「LinkedHashMap」分配給attribute1的「readValue」函數。 – 2012-08-09 17:22:37

+0

除非'objectMapper'是你寫的一些類,你可以做的並不多,我只是指出問題出在哪裏,你可以改變成java.util.LinkedHashMap',然後手動讀取值它並將它們設置爲ClassB的一個對象 – Tomer 2012-08-11 19:52:23

相關問題