我有一种来自服务的数据
- 服务A返回:
{
"name": "foo",
"id": 333,
"contact": [
{
"type": "phone",
"number": "12333333"
},
{
"type": "phone",
"number": "22333333"
}
]
}
- 我为它准备了一个模型类:
public class People {
public String name;
public int id;
public List<Contact> contact;
public static class Contact {
public String type;
public String number;
}
}
- 但服务B返回:
{
"name": "foo",
"id": 333,
"contact":{
"entries": [
{
"type": "phone",
"number": "12333333"
},
{
"type": "phone",
"number": "22333333"
}
]
}
}
真实的情况是在json中有10个列表,在这个JSON中的所有列表都被一个对象 Package ,那么“entries”就是实际的列表。我已经使用了模态类else where,我只想把它们当作同一个类,比如:
Contact contact = people.contact
有什么想法吗?
1条答案
按热度按时间368yc8dk1#
您可以使用自定义
TypeAdapterFactory
和@JsonAdapter
注解来解决这个问题,这些注解位于值可能被换行的字段上。TypeAdapterFactory
用于获取委托适配器(例如List<Contact>
),然后创建一个适配器,该适配器在必要时解包JSON。@JsonAdapter
注解用于将此工厂仅应用于受影响的字段,而不是通常应用于所有List
值。第一个