zoukankan      html  css  js  c++  java
  • 之前写了http解析高德地图时,json转对象搞了半天 , 今天同事用GSON把json转对象,一句代码就解决了,代码如下

    MapUtil.java

      

    package com.mxzhang.utils;

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.net.URI;
    import java.net.URL;
    import java.net.URLConnection;

    import com.google.gson.Gson;
    import com.mxzhang.wechat.lbs.bean.MapGpsConvertBean;
    import com.mxzhang.wechat.lbs.bean.MapRegeoBean;
    import com.mxzhang.wechat.lbs.bean.MapRegeoBean.AddressComponent;

    public class MapUtil {
    public static String AMAP_WEB_KEY = "6901bd7712d0b3f97735ea904ec7dcd6";

    public static String getHttpResponse(String serverUrl) {
    BufferedReader bf=null;
    StringBuffer result = null;
    try {
    URI uri = new URI(serverUrl);
    URL url = uri.toURL();
    URLConnection connection = url.openConnection();
    connection.setRequestProperty("Content-type", "text/html");
    connection.setRequestProperty("Content-type", "application/json;charset=UTF-8");
    connection.setRequestProperty("Accept-Charset", "utf-8");
    connection.setRequestProperty("ContentType", "utf-8");
    connection.connect();
    result = new StringBuffer();
    bf= new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8"));
    String line;
    while((line=bf.readLine())!=null) {
    result.append(line);
    }
    return result.toString();
    } catch (Exception e) {
    e.printStackTrace();
    }finally {
    try {
    if(bf!=null) {
    bf.close();
    }
    } catch (Exception e2) {
    e2.printStackTrace();
    }
    }
    return null;
    }

    public static MapRegeoBean regeo(String lan, String lon){
    String respString = getHttpResponse("http://restapi.amap.com/v3/geocode/regeo?output=json&location="+lon+","+lan+"&key="+AMAP_WEB_KEY);
    System.out.println(respString);
    return new Gson().fromJson(respString, MapRegeoBean.class);
    }

    public static MapGpsConvertBean convertGps(String lan, String lon){
    String respString = getHttpResponse("http://restapi.amap.com/v3/assistant/coordinate/convert?output=json&coordsys=gps&locations="+lon+","+lan+"&key="+AMAP_WEB_KEY);
    System.out.println(respString);
    return new Gson().fromJson(respString, MapGpsConvertBean.class);
    }

    public static void main(String[] args) throws Exception {
    MapGpsConvertBean gpsRes = convertGps("30.4834","114.4197");
    if(gpsRes.getStatus()!=null && "1".equals(gpsRes.getStatus())) {
    System.out.println(gpsRes.getLocations());
    }

    MapRegeoBean res = regeo("30.481079101563","114.425219184028");
    if(res.getStatus()!=null && "1".equals(res.getStatus())) {
    System.out.println(res.getRegeocode().getFormattedAddress());
    AddressComponent addCom = res.getRegeocode().getAddressComponent();
    System.out.println(addCom.getProvince());
    }
    }
    }

    实体类:MapBaseBean

      

    package com.mxzhang.wechat.lbs.bean;

    import com.mxzhang.wechat.lbs.bean.MapRegeoBean.Regeocode;

    public class MapBaseBean {
    private String status;
    private String info;

    public void setStatus(String status) {
    this.status = status;
    }

    public String getStatus() {
    return status;
    }

    public void setInfo(String info) {
    this.info = info;
    }

    public String getInfo() {
    return info;
    }
    }

      实体类:MapGpsConvertBean

        

    package com.mxzhang.wechat.lbs.bean;

    public class MapGpsConvertBean extends MapBaseBean {
    private String locations;

    public void setLocations(String locations) {
    this.locations = locations;
    }

    public String getLocations() {
    return locations;
    }
    }

      实体类:MapRegeoBean

        

    package com.mxzhang.wechat.lbs.bean;

    import java.util.List;

    import org.codehaus.jackson.annotate.JsonProperty;

    import com.google.gson.annotations.SerializedName;

    public class MapRegeoBean extends MapBaseBean {
    private String infocode;
    private Regeocode regeocode;

    public void setInfocode(String infocode) {
    this.infocode = infocode;
    }

    public String getInfocode() {
    return infocode;
    }

    public void setRegeocode(Regeocode regeocode) {
    this.regeocode = regeocode;
    }

    public Regeocode getRegeocode() {
    return regeocode;
    }

    public class Regeocode {

    @SerializedName("formatted_address")
    private String formattedAddress;

    private AddressComponent addressComponent;
    private List<Pois> pois;
    private List<Roads> roads;
    private List<Roadinters> roadinters;
    private List<Aois> aois;

    public void setFormattedAddress(String formattedAddress) {
    this.formattedAddress = formattedAddress;
    }

    public String getFormattedAddress() {
    return formattedAddress;
    }

    public void setAddresscomponent(AddressComponent addressComponent) {
    this.addressComponent = addressComponent;
    }

    public AddressComponent getAddressComponent() {
    return addressComponent;
    }

    public void setPois(List<Pois> pois) {
    this.pois = pois;
    }

    public List<Pois> getPois() {
    return pois;
    }

    public void setRoads(List<Roads> roads) {
    this.roads = roads;
    }

    public List<Roads> getRoads() {
    return roads;
    }

    public void setRoadinters(List<Roadinters> roadinters) {
    this.roadinters = roadinters;
    }

    public List<Roadinters> getRoadinters() {
    return roadinters;
    }

    public void setAois(List<Aois> aois) {
    this.aois = aois;
    }

    public List<Aois> getAois() {
    return aois;
    }
    }

    public class AddressComponent {

    private String country;
    private String province;
    private String city;
    private String citycode;
    private String district;
    private String adcode;
    private String township;
    private String towncode;

    // private Neighborhood neighborhood;
    // private Building building;
    // @JsonProperty("streetNumber")
    // private Streetnumber streetnumber;
    // @JsonProperty("businessAreas")
    // private List<Businessareas> businessareas;
    public void setCountry(String country) {
    this.country = country;
    }

    public String getCountry() {
    return country;
    }

    public void setProvince(String province) {
    this.province = province;
    }

    public String getProvince() {
    return province;
    }

    public void setCity(String city) {
    this.city = city;
    }

    public String getCity() {
    return city;
    }

    public void setCitycode(String citycode) {
    this.citycode = citycode;
    }

    public String getCitycode() {
    return citycode;
    }

    public void setDistrict(String district) {
    this.district = district;
    }

    public String getDistrict() {
    return district;
    }

    public void setAdcode(String adcode) {
    this.adcode = adcode;
    }

    public String getAdcode() {
    return adcode;
    }

    public void setTownship(String township) {
    this.township = township;
    }

    public String getTownship() {
    return township;
    }

    public void setTowncode(String towncode) {
    this.towncode = towncode;
    }

    public String getTowncode() {
    return towncode;
    }
    }

    public class Pois {

    private String id;
    private String name;
    private String type;
    private String tel;
    private String direction;
    private String distance;
    private String location;
    private String address;
    private String poiweight;
    private String businessarea;

    public void setId(String id) {
    this.id = id;
    }

    public String getId() {
    return id;
    }

    public void setName(String name) {
    this.name = name;
    }

    public String getName() {
    return name;
    }

    public void setType(String type) {
    this.type = type;
    }

    public String getType() {
    return type;
    }

    public void setTel(String tel) {
    this.tel = tel;
    }

    public String getTel() {
    return tel;
    }

    public void setDirection(String direction) {
    this.direction = direction;
    }

    public String getDirection() {
    return direction;
    }

    public void setDistance(String distance) {
    this.distance = distance;
    }

    public String getDistance() {
    return distance;
    }

    public void setLocation(String location) {
    this.location = location;
    }

    public String getLocation() {
    return location;
    }

    public void setAddress(String address) {
    this.address = address;
    }

    public String getAddress() {
    return address;
    }

    public void setPoiweight(String poiweight) {
    this.poiweight = poiweight;
    }

    public String getPoiweight() {
    return poiweight;
    }

    public void setBusinessarea(String businessarea) {
    this.businessarea = businessarea;
    }

    public String getBusinessarea() {
    return businessarea;
    }

    }

    public class Roads {

    private String id;
    private String name;
    private String direction;
    private String distance;
    private String location;

    public void setId(String id) {
    this.id = id;
    }

    public String getId() {
    return id;
    }

    public void setName(String name) {
    this.name = name;
    }

    public String getName() {
    return name;
    }

    public void setDirection(String direction) {
    this.direction = direction;
    }

    public String getDirection() {
    return direction;
    }

    public void setDistance(String distance) {
    this.distance = distance;
    }

    public String getDistance() {
    return distance;
    }

    public void setLocation(String location) {
    this.location = location;
    }

    public String getLocation() {
    return location;
    }

    }

    public class Roadinters {

    private String direction;
    private String distance;
    private String location;
    @JsonProperty("first_id")
    private String firstId;
    @JsonProperty("first_name")
    private String firstName;
    @JsonProperty("second_id")
    private String secondId;
    @JsonProperty("second_name")
    private String secondName;

    public void setDirection(String direction) {
    this.direction = direction;
    }

    public String getDirection() {
    return direction;
    }

    public void setDistance(String distance) {
    this.distance = distance;
    }

    public String getDistance() {
    return distance;
    }

    public void setLocation(String location) {
    this.location = location;
    }

    public String getLocation() {
    return location;
    }

    public void setFirstId(String firstId) {
    this.firstId = firstId;
    }

    public String getFirstId() {
    return firstId;
    }

    public void setFirstName(String firstName) {
    this.firstName = firstName;
    }

    public String getFirstName() {
    return firstName;
    }

    public void setSecondId(String secondId) {
    this.secondId = secondId;
    }

    public String getSecondId() {
    return secondId;
    }

    public void setSecondName(String secondName) {
    this.secondName = secondName;
    }

    public String getSecondName() {
    return secondName;
    }

    }

    public class Aois {

    private String id;
    private String name;
    private String adcode;
    private String location;
    private String area;
    private String distance;
    private String type;

    public void setId(String id) {
    this.id = id;
    }

    public String getId() {
    return id;
    }

    public void setName(String name) {
    this.name = name;
    }

    public String getName() {
    return name;
    }

    public void setAdcode(String adcode) {
    this.adcode = adcode;
    }

    public String getAdcode() {
    return adcode;
    }

    public void setLocation(String location) {
    this.location = location;
    }

    public String getLocation() {
    return location;
    }

    public void setArea(String area) {
    this.area = area;
    }

    public String getArea() {
    return area;
    }

    public void setDistance(String distance) {
    this.distance = distance;
    }

    public String getDistance() {
    return distance;
    }

    public void setType(String type) {
    this.type = type;
    }

    public String getType() {
    return type;
    }

    }

    public class Neighborhood {

    private String name;
    private String type;

    public void setName(String name) {
    this.name = name;
    }

    public String getName() {
    return name;
    }

    public void setType(String type) {
    this.type = type;
    }

    public String getType() {
    return type;
    }

    }

    public class Building {

    private String name;
    private String type;

    public void setName(String name) {
    this.name = name;
    }

    public String getName() {
    return name;
    }

    public void setType(String type) {
    this.type = type;
    }

    public String getType() {
    return type;
    }

    }

    public class Streetnumber {

    private String street;
    private String number;
    private String location;
    private String direction;
    private String distance;

    public void setStreet(String street) {
    this.street = street;
    }

    public String getStreet() {
    return street;
    }

    public void setNumber(String number) {
    this.number = number;
    }

    public String getNumber() {
    return number;
    }

    public void setLocation(String location) {
    this.location = location;
    }

    public String getLocation() {
    return location;
    }

    public void setDirection(String direction) {
    this.direction = direction;
    }

    public String getDirection() {
    return direction;
    }

    public void setDistance(String distance) {
    this.distance = distance;
    }

    public String getDistance() {
    return distance;
    }

    }

    public class Businessareas {

    private String location;
    private String name;
    private String id;

    public void setLocation(String location) {
    this.location = location;
    }

    public String getLocation() {
    return location;
    }

    public void setName(String name) {
    this.name = name;
    }

    public String getName() {
    return name;
    }

    public void setId(String id) {
    this.id = id;
    }

    public String getId() {
    return id;
    }

    }
    }

  • 相关阅读:
    2016阿里巴巴73款开源产品全向图
    在微软5年,我学到的几个小技能
    2016 年 Java 工具和技术的调查:IDEA 已超过
    PHP学习总结(9)——PHP入门篇之WAMPServer服务控制面板介绍
    Template Pattern & Strategy Pattern
    天之道,损有余而补不足。人之道,则不然,损不足以奉有余。孰能有余以奉天下?唯有道者
    [林锐13]面向对象程序设计方法概述
    [林锐8.4]函数指针
    ZT c++ 中的重载全局new,delete
    ZT 自定义operator new与operator delete的使用(1)
  • 原文地址:https://www.cnblogs.com/CrisZjie180228/p/9228334.html
Copyright © 2011-2022 走看看