0
私は次のMediaPlayerState
クラスを持っており、そのインスタンスはObject
タイプとして取得しました。私はこのクラスインスタンスをシリアライズし、返されたstateString
はそのクラスパスを指す@class
というキーを持っています。ジャクソン - @classのキーがあり、その値はクラスのフルパスです - 何らかの理由がありますか?
私の質問は何ですかこれは@class
に使用されていますか?それはstateString
を試して1と同じようにMediaPlayerState.class
を入力しなくてもクラスタイプを正しくデシリアライズするために使用できますか?
Class MediaPlayerState() {
private String client;
private String playbackState;
}
// Jackson Serialize
Object value = method.invoke(this, null); // this returned MediaPlayerState
map.put(key, objectMapper.writeValueAsString(value));
stateString = {"@class":"com.jessica.mediaplayer.MediaPlayerState",
"playbackState":null,
"client":null}
// Jackson Deserialize try 1 -- able to get correct MediaPlayerState
MediaPlayerState state = objectMapper.readValue(stateString, MediaPlayerState.class);
// Jackson Deserialize try 2 -- incorrect
Object state = objectMapper.readValue(stateString, Object.class);