我目前正在尝试使用 Jackson 将对象转换为 JSON 字符串,这很容易通过
public byte[] toJSON(Object obj) throws IOException {
ObjectMapper map = new ObjectMapper();
return map.writeValueAsString(obj).getBytes();
}
我遇到麻烦的地方是当我要获取字节数组并将它们转换为对象时。目前我有:
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
任何有关此事的帮助将不胜感激!