【问题标题】:How do I collapse nested structures in Gson deserialization?如何在 Gson 反序列化中折叠嵌套结构?
【发布时间】:2015-04-28 13:56:12
【问题描述】:

我正在为一个在 JSON 响应中使用大量嵌套对象/数组的服务构建一个 API 客户端。例如:

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

我希望我解析的“foo”类跳过“data”成员,看起来像这样:

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

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

【问题讨论】:

    标签: java android json gson deserialization


    【解决方案1】:

    无需编写自定义反序列化器的最简单方法就是添加一个包装器对象。

    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 方法,包装器 Data 对象永远不会暴露给公共 API,因此在功能上是相同的。

    【讨论】:

      猜你喜欢
      • 2022-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多