如何在gson反序列化中折叠嵌套结构?

o3imoua4  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(380)

我正在为一个服务构建一个api客户机,该服务在json响应中使用了大量深度嵌套的对象/数组。例如:

"foo":{
    "name":"something",
    "id":1
    "data":{
        "items":[
             ...
             //item objects
             ...
        ]        
    }
}

我希望我解析的“foo”类跳过“data”成员,如下所示:

class Foo {
    int id;
    String name;
    List<Item> items;
}

在消除响应数据中的“数据”层的同时,使用gson解析json的最佳方法是什么?

dluptydi

dluptydi1#

不编写自定义反序列化程序的最简单方法就是添加 Package 器对象。

class Foo {
  private int id;
  private String name;
  private Data data;

  static class Data {
    List<Item> items;
  }

  public int getId() { return id; }
  public String getName() { return name; }     
  public List<Item> getItems() { return data.items; }
}

对于私有字段和getter方法, Package 器 Data 对象从不向公共api公开,所以在功能上是相同的。

相关问题