私は現在、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 メソッドから返されたオブジェクトは、最初に JSON 文字列に変換されたオブジェクトではなく、常に LinkedHashMap です。
問題をうまく伝えられなかった場合は申し訳ありませんが、簡単に要約してみてください。コードで次のことができるようにしたい:
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
この問題に関するヘルプをいただければ幸いです。