目前我正在试图用杰克逊把对象变成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