gpt4 book ai didi

android - 在一个对象中一起使用 jackson 和 ormlite 注释时出现异常

转载 作者:搜寻专家 更新时间:2023-11-01 09:00:48 24 4
gpt4 key购买 nike

我正在使用 Jackson 库将 json 解析为对象,并使用 ormlite 将相同的对象存储到 sqlite 数据库。这是我的模型类:

public class Site {
private String uniqueId;
private String name;
private ForeignCollection<ContactDetails> items;

@JsonProperty("contact_details")
public void setContactDetails(ForeignCollection<ContactDetails> contact_details) {
this.items = contact_details;
}

public List<ContactDetails> getContactDetails() {
return new ArrayList<ContactDetails>(items);
}

public String getUniqueId() {
return uniqueId;
}
@JsonProperty("unique_id")
public void setUniqueId(String uniqueId) {
this.uniqueId = uniqueId;
}
public String getName() {
return name;
}
@JsonProperty("name")
public void setName(String name) {
this.name = name;
}
}

ContactDetails 类是:

public class ContactDetails {

@JsonProperty("contact_detail_id")
int getContactDetailId;
@JsonProperty("cellphone_number")
String getCellphoneNumber;
@JsonProperty("email")
String getEmail;
@JsonProperty("name")
String getName;
}

我的 json 是:

{
"unique_id": "WDV000282",
"name": "2XL - Diverse werken - Zeebrugge",

"contact_details": [
{
"contact_detail_id": 20647,
"cellphone_number": "123456",
"email": "plabon@gmail.com",
"name": "plabon",

},
{
"contact_detail_id": 20648,
"cellphone_number": "",
"email": "modak@gmail.com",
"name": "test",

}
]
}

但是当我执行 readvalue 时:

Site test= objectMapper.readValue(json, Site.class); 

我得到以下异常

org.codehaus.jackson.map.JsonMappingException: Can not find a deserializer for non-concrete Collection type [collection type; class com.j256.ormlite.dao.ForeignCollection, contains [simple type, class com.example.jacksonparsingtest.ContactDetails]]

我不明白发生了什么事?请帮忙...

最佳答案

因为 ForeignCollection 是一个接口(interface),Jackson 不能实例化一个新的对象。我会尝试用 @JsonDeserialize(as=ConcreteSubclassOfForeignCollection.class) 注释该字段, 使用像 BaseForeignCollection 这样的具体子类或使用此解决方案中的简单列表:https://stackoverflow.com/a/14920916/2021412 .

关于android - 在一个对象中一起使用 jackson 和 ormlite 注释时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15100744/

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