天天看点

高某提供的地址,java 进行拆解,(高德提供可自定义深度地址,如三级,四级,五级)

  • 获取高某提供的地址数据,返回的数据可以是json,xml形式
  • 高某接口:https://lbs.amap.com/api/webservice/guide/api/district
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
    //请求高德提供的接口
    StringBuilder url = new StringBuilder("https://restapi.amap.com/v3/config/district?");
    url.append("key=");//appid设置
    url.append("高德开发申请的key值");
    url.append("&subdistrict=");//secret设置
    url.append(4);//获取四级深度的地址
    try {
        HttpClient client = HttpClientBuilder.create().build();//构建一个Client
        HttpGet get = new HttpGet(url.toString());    //构建一个GET请求
        HttpResponse response = client.execute(get);//提交GET请求
        HttpEntity he = response.getEntity();//拿到返回的HttpResponse的"实体"
        JSONObject content = JSONUtil.parseObj(EntityUtils.toString(he,"UTF-8"));
        Object districts = content.get("districts");
        List<AreaVo> toList = JSONUtil.toList(JSONUtil.parseArray(districts), AreaVo.class);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
           
  • AreaVo封装类,这里只拿名称就可以了,其他的看需求拿,还有邮政编码等
@Data
public class AreaVo {

    private String name;

    private List<AreaVo> districts;
}
           
  • 经过处理之后的数据
高某提供的地址,java 进行拆解,(高德提供可自定义深度地址,如三级,四级,五级)