Gson 对对象下的数组进行转换

发布时间 2023-04-27 17:25:59作者: 蜜铀

现有一个json数据

{
        "result":[
            {
                "powerUnitId":1,
                "powerUnitName":"供电单位1"
            },
            {
                "powerUnitId":2,
                "powerUnitName":"供电单位2"
            }
        ]
    }

这个是从服务器里面获取到的数据,但是数据返回result字段对应的类型是动态的,目前返回的是数组

针对此需求:

设计了两个个对象:Response、Result

public class Response<T> {
    private T result;
    /// getter setter
}
public class Result {
   private int powerUnitId;
   private String powerUnitName;
  /// getter setter
}

转换方法:

String json = "{\"result\":[{\"powerUnitId\":1,\"powerUnitName\":\"供电单位1\"},{\"powerUnitId\":2,\"powerUnitName\":\"供电单位2\"}]}";
Gson gson = new Gson();
Type founderListType = new TypeToken<Response<ArrayList<Result>>>(){}.getType();
Response<Result> o = gson.fromJson(json, founderListType);