gpt4 book ai didi

java - jackson 不会下课

转载 作者:太空宇宙 更新时间:2023-11-04 14:52:51 25 4
gpt4 key购买 nike

我有一个保存联系数据的类;包装在各自的类中。我最近将照片设置从简单的 byte[] 更改为包装类,但实例化有点不同,现在无法正确序列化/包装。

我的其他类(class)正确换行,例如 "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;
}
}
}

我做错了什么?

最佳答案

刚知道那是什么。在 ContactInfo 类中,有一个简单的访问器函数来获取编码数据。

public String getPhoto() {
return m_photo.getEncodedPhoto();
}

通过简单地将其置于忽略状态(或者简单地将其更改为返回对象本身,我可能会这样做),

@JsonIgnore
public String getPhoto() {
return m_photo.getEncodedPhoto();
}

序列化器停止尝试读取它。我希望有一种方法可以将序列化器引擎设置为对属性更加“显式声明”,而不是“序列化似乎与成员变量匹配的所有内容。”

关于java - jackson 不会下课,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23556567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com