目前我正在試圖用傑克遜把對象變成JSON字符串這很容易被轉換JSON字符串「Object.class」
public byte[] toJSON(Object obj) throws IOException {
ObjectMapper map = new ObjectMapper();
return map.writeValueAsString(obj).getBytes();
}
完成,其中我遇到麻煩時,我是拿字節數組並將它們變成一個Object。目前,我有:
public Object toObject(byte[] bytes) throws IOException, ClassNotFoundException {
ObjectMapper map = new ObjectMapper();
return (Object)map.readValue(bytes, Object.class);
}
我成功地將對象轉換爲一個JSON字符串,但對象從toObject方法返回總是LinkedHashMap中的而不是最初變成JSON字符串的對象。
對不起,如果我做了一個糟糕的工作溝通我的問題,但生病試圖總結簡單。我想我的代碼能夠做到以下幾點:
MyClass someObject = new MyClass();
String json = toJSON(someObject);
Object tempObject = toObject(json);
MyClass sameObject = (MyClass) tempObject;
這個代碼目前引發以下:
java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.MyClass
對此事的任何幫助,將不勝感激!
爲什麼你要返回一個對象,而是嘗試'返回map.readValue(bytes,YourObject.class);' – s106mo 2012-07-10 17:38:59
從你的字節創建一個字符串並在結果字符串上嘗試Jackson。 – 2012-07-10 17:59:03