Gson:平面化数组的冗余对象环绕

cvxl0en2  于 2022-11-06  发布在  其他
关注(0)|答案(1)|浏览(168)

我有一种来自服务的数据

  • 服务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

有什么想法吗?

368yc8dk

368yc8dk1#

您可以使用自定义TypeAdapterFactory@JsonAdapter注解来解决这个问题,这些注解位于值可能被换行的字段上。
TypeAdapterFactory用于获取委托适配器(例如List<Contact>),然后创建一个适配器,该适配器在必要时解包JSON。@JsonAdapter注解用于将此工厂仅应用于受影响的字段,而不是通常应用于所有List值。
第一个

相关问题