1. 前言
最近,自己在做一个天气预报Demo,其中利用到了高德地图中的行政区域查询接口-----通过url请求,返回相应的json数据,并将此数据转换为Java对象。主要是json数据的结构比较复杂,有json数组,而自己这方面的知识涉及得又比较少,所以,折腾了好长一段时间。
2. 需求分析
在Demo中,我是使用了高德地图中的天气预报接口,主要实现了两个功能:1. 根据城市id查询天气;2. 根据城市名称查询。奈何天气预报接口中没有根据城市名称查询天气,所以,我先通过行政区域查询接口把城市名称转换为城市id,再进行天气预报接口调用,这样就完成了上述功能。
由于接口中返回的都是json数据,为了方便客户端调用,需要把json数据转换为Java对象。
需要将以下的json数据转换为java对象:
3. 实战编码
将以上json数据抽象为两个java对象-----DistrictVO、DistrictResponseVO
DistrictVO:
@Data
public class DistrictVO implements Serializable {
private static final long serialVersionUID = 8444053771784412419L;
private List<String> citycode;
private String adcode;
private String name;
private String center;
private String level;
private List<DistrictVO> districts;
}
DistrictResponseVO:
@Data
public class DistrictResponseVO implements Serializable {
private static final long serialVersionUID = -5812661329615553770L;
private Integer status;
private Integer count;
private String info;
private Integer infocode;
private SuggestionVO suggestion;
private List<DistrictVO> districts;
}
JsonUtil:
public class JsonUtil {
public static DistrictResponseVO doGetDistrict(String json