연락처 데이터를 보유하는 클래스가 있습니다. 각각의 클래스에 싸여있다. 최근 래핑 된 클래스가되는 간단한 바이트 []중인 내 사진 설정을 변경했지만 instantitaion 조금 다르며 이제 제대로 serialize/랩되지 않습니다.Jackson이 클래스를 랩핑하지 않습니다.
내 다른 클래스는 "number":{"log.PhoneNumber":{"number":"123-456-7890"}}
과 같이 제대로 래핑되지만 새 사진 (예 : new Photo("DEADBEEF")
)을 먹는다면 "photo":"DEADBEEF"
이됩니다. 이것은 디시리얼라이저에도 문제를 일으 킵니다.
public class ContactInfo {
@JsonProperty("name") private Name m_name = null;
@JsonProperty("number") private PhoneNumber m_number = null;
@JsonProperty("email") private Email m_email = null;
@JsonProperty("photo") private Photo m_photo = null;
@JsonCreator
public ContactInfo(@JsonProperty("name") Name name,
@JsonProperty("number") PhoneNumber number,
@JsonProperty("email") Email email,
@JsonProperty("photo") Photo photo) {
/** Set vars **/
}
@JsonTypeInfo(use=Id.CLASS, include=As.WRAPPER_OBJECT)
static public class Photo {
private byte[] m_decodedBase64 = null;
public Photo(byte[] encodedBase64) {
m_decodedBase64 = Base64.decodeBase64(encodedBase64);
}
@JsonCreator
public Photo(@JsonProperty("photoData")String encodedBase64) {
m_decodedBase64 = Base64.decodeBase64(encodedBase64);
}
@JsonProperty("photoData")
public String getEncodedPhoto() {
return Base64.encodeBase64String(m_decodedBase64);
}
public byte[] getDecodedData() {
return m_decodedBase64;
}
}
}
내가 뭘 잘못하고 있니?
String 대신 byte []를 사용하여'Photo '를 생성해야한다고 생각합니다. 나는 틀릴지도 모른다! – Keerthivasan