您的位置:首页 > 编程语言 > Java开发

通过JAVA从高德地图URL连接获取json数据 解析并存入数据库的程序举例

2017-11-13 10:13 1191 查看
首先 进入高德开放平台 按官网教程获取key





这里以杭州某区域车站信息举例

通过在线解析工具获取json格式的数据



通过此数据建立实体类

package geturl;

import java.util.List;

public class JsonBean {
private String status;
private String count;

public String getStatus() {
return status;
}

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

public String getCount() {
return count;
}

public void setCount(String count) {
this.count = count;
}

public String getInfo() {
return info;
}

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

public String getInfocode() {
return infocode;
}

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

public SuggestionBean getSuggestion() {
return suggestion;
}

public void setSuggestion(SuggestionBean suggestion) {
this.suggestion = suggestion;
}

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

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

private String info;
private String infocode;
private SuggestionBean suggestion;

private List<PoisBean> pois;

public static class SuggestionBean {
private List<?> keywords;
private List<?> cities;

public List<?> getKeywords() {
return keywords;
}

public void setKeywords(List<?> keywords) {
this.keywords = keywords;
}

public List<?> getCities() {
return cities;
}

public void setCities(List<?> cities) {
this.cities = cities;
}

}

public static class PoisBean {
private String id;
private String name;
private String tag;

public String getId() {
return id;
}

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

public String getName() {
return name;
}

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

public String getTag() {
return tag;
}

public void setTag(String tag) {
this.tag = tag;
}

public String getType() {
return type;
}

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

public String getTypecode() {
return typecode;
}

public void setTypecode(String typecode) {
this.typecode = typecode;
}

public String getBiz_type() {
return biz_type;
}

public void setBiz_type(String biz_type) {
this.biz_type = biz_type;
}

public String getAddress() {
return address;
}

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

public String getLocation() {
return location;
}

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

public String getTel() {
return tel;
}

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

public String getPostcode() {
return postcode;
}

public void setPostcode(String postcode) {
this.postcode = postcode;
}

public String getWebsite() {

14683
return website;
}

public void setWebsite(String website) {
this.website = website;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public String getPcode() {
return pcode;
}

public void setPcode(String pcode) {
this.pcode = pcode;
}

public String getPname() {
return pname;
}

public void setPname(String pname) {
this.pname = pname;
}

public String getCitycode() {
return citycode;
}

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

public String getCityname() {
return cityname;
}

public void setCityname(String cityname) {
this.cityname = cityname;
}

public String getAdcode() {
return adcode;
}

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

public String getAdname() {
return adname;
}

public void setAdname(String adname) {
this.adname = adname;
}

public String getImportance() {
return importance;
}

public void setImportance(String importance) {
this.importance = importance;
}

public String getShopid() {
return shopid;
}

public void setShopid(String shopid) {
this.shopid = shopid;
}

public String getShopinfo() {
return shopinfo;
}

public void setShopinfo(String shopinfo) {
this.shopinfo = shopinfo;
}

public String getPoiweight() {
return poiweight;
}

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

public String getGridcode() {
return gridcode;
}

public void setGridcode(String gridcode) {
this.gridcode = gridcode;
}

public String getDistance() {
return distance;
}

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

public String getNavi_poiid() {
return navi_poiid;
}

public void setNavi_poiid(String navi_poiid) {
this.navi_poiid = navi_poiid;
}

public String getEntr_location() {
return entr_location;
}

public void setEntr_location(String entr_location) {
this.entr_location = entr_location;
}

public String getBusiness_area() {
return business_area;
}

public void setBusiness_area(String business_area) {
this.business_area = business_area;
}

public String getExit_location() {
return exit_location;
}

public void setExit_location(String exit_location) {
this.exit_location = exit_location;
}

public String getMatch() {
return match;
}

public void setMatch(String match) {
this.match = match;
}

public String getRecommend() {
return recommend;
}

public void setRecommend(String recommend) {
this.recommend = recommend;
}

public String getTimestamp() {
return timestamp;
}

public void setTimestamp(String timestamp) {
this.timestamp = timestamp;
}

public String getAlias() {
return alias;
}

public void setAlias(String alias) {
this.alias = alias;
}

public String getIndoor_map() {
return indoor_map;
}

public void setIndoor_map(String indoor_map) {
this.indoor_map = indoor_map;
}

public String getIndoor_data() {
return indoor_data;
}

public void setIndoor_data(String indoor_data) {
this.indoor_data = indoor_data;
}

public String getGroupbuy_num() {
return groupbuy_num;
}

public void setGroupbuy_num(String groupbuy_num) {
this.groupbuy_num = groupbuy_num;
}

public String getDiscount_num() {
return discount_num;
}

public void setDiscount_num(String discount_num) {
this.discount_num = discount_num;
}

public String getBiz_ext() {
return biz_ext;
}

public void setBiz_ext(String biz_ext) {
this.biz_ext = biz_ext;
}

public String getEvent() {
return event;
}

public void setEvent(String event) {
this.event = event;
}

public String getChildren() {
return children;
}

public void setChildren(String children) {
this.children = children;
}

public String getPhotos() {
return photos;
}

public void setPhotos(String photos) {
this.photos = photos;
}

private String type;
private String typecode;
private String biz_type;
private String address;
private String location;
private String tel;
private String postcode;
private String website;
private String email;
private String pcode;
private String pname;
private String citycode;
private String cityname;
private String adcode;
private String adname;
private String importance;
private String shopid;
private String shopinfo;
private String poiweight;
private String gridcode;
private String distance;
private String navi_poiid;
private String entr_location;
private String business_area;
private String exit_location;
private String match;
private String recommend;
private String timestamp;
private String alias;
private String indoor_map;
private String indoor_data;
private String groupbuy_num;
private String discount_num;
private String biz_ext;
private String event;
private String children;
private String photos;

}
}


数据库连接类

package geturl;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Conn {

/**
* @method getConn()
* @return Connection
*/
public Connection getConn() {
String driver = "org.postgresql.Driver";
String url = "jdbc:postgresql://localhost:5432/superpower";
String username = "postgres";
String password = "123456";
Connection conn = null;

try {
Class.forName(driver); //
conn = (Connection) DriverManager.getConnection(url, username, password);

System.out.println("数据库连接成功");

} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}

return conn;
}

}


解析存储类

package geturl;
import geturl.JsonBean.PoisBean;

import java.net.*;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.io.*;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class Iputil
{
public static void main(String [] args)
{
JsonBean jsonBean=new JsonBean();
try
{
URL url = new URL("http://restapi.amap.com/v3/place/text?&keywords=%E5%85%AC%E4%BA%A4%E7%AB%99%E7%82%B9&city=%E6%9D%AD%E5%B7%9E&output=json&offset=20&page=1&key=6b6ebee4f2f6ef4c55d1b4b52310acec&extensions=all");
URLConnection urlConnection = url.openConnection();
HttpURLConnection connection = null;
if(urlConnection instanceof HttpURLConnection)
{
connection = (HttpURLConnection) urlConnection;
}
else
{
System.out.println("输入urlַ");
return;
}
BufferedReader in = new BufferedReader(
new InputStreamReader(connection.getInputStream()));
String urlString = "";
String current;
while((current = in.readLine()) != null)
{
urlString += current;
}

JSONObject json=JSONObject.fromObject(urlString);//大括号object 字符串string 数组list

jsonBean.setStatus(json.optString("status"));
jsonBean.setCount(json.optString("count"));
jsonBean.setInfo(json.optString("info"));
jsonBean.setInfocode(json.optString("infocode"));

JSONObject suggestionObj=json.optJSONObject("suggestion");
JsonBean.SuggestionBean suggestion=new JsonBean.SuggestionBean();

List<String> keywordsList=new ArrayList<>();
JSONArray keywordsArray=suggestionObj.optJSONArray("keywords");
for (int i = 0; i < keywordsArray.size(); i++) {
keywordsList.add(keywordsArray.optString(i));
}
suggestion.setKeywords(keywordsList);

List<String> citiesList=new ArrayList<>();
JSONArray citiesArray=suggestionObj.optJSONArray("cities");
for (int i = 0; i < citiesArray.size(); i++) {
citiesList.add(citiesArray.optString(i));
}
suggestion.setCities(citiesList);

jsonBean.setSuggestion(suggestion);

List<PoisBean> poisBeansList=new ArrayList<>();
JSONArray poisArray=json.optJSONArray("pois");
for (int i = 0; i < poisArray.size(); i++) {
JSONObject poisObj = poisArray.optJSONObject(i);
JsonBean.PoisBean poisBean=new JsonBean.PoisBean();
poisBean.setId(poisObj.optString("id"));
poisBean.setName(poisObj.optString("name"));
poisBean.setTag(poisObj.optString("tag"));
poisBean.setType(poisObj.optString("type"));
poisBean.setTypecode(poisObj.optString("typecode"));
poisBean.setBiz_type(poisObj.optString("biz_type"));
poisBean.setAddress(poisObj.optString("address"));
poisBean.setLocation(poisObj.optString("location"));
poisBean.setTel(poisObj.optString("tel"));
poisBean.setPostcode(poisObj.optString("postcode"));
poisBean.setWebsite(poisObj.optString("website"));
poisBean.setEmail(poisObj.optString("email"));
poisBean.setPcode(poisObj.optString("pcode"));
poisBean.setPname(poisObj.optString("pname"));
poisBean.setCitycode(poisObj.optString("citycode"));
poisBean.setCityname(poisObj.optString("cityname"));
poisBean.setAdcode(poisObj.optString("adcode"));
poisBean.setAdname(poisObj.optString("adname"));
poisBean.setImportance(poisObj.optString("importance"));
poisBean.setShopid(poisObj.optString("shopid"));
poisBean.setShopinfo(poisObj.optString("shopinfo"));
poisBean.setPoiweight(poisObj.optString("poiweight"));
poisBean.setGridcode(poisObj.optString("gridcode"));
poisBean.setDistance(poisObj.optString("distance"));
poisBean.setNavi_poiid(poisObj.optString("navi_poiid"));
poisBean.setEntr_location(poisObj.optString("entr_location"));
poisBean.setBusiness_area(poisObj.optString("business_area"));
poisBean.setExit_location(poisObj.optString("exit_location"));
poisBean.setMatch(poisObj.optString("match"));
poisBean.setRecommend(poisObj.optString("recommend"));
poisBean.setTimestamp(poisObj.optString("timestamp"));
poisBean.setAlias(poisObj.optString("alias"));
poisBean.setIndoor_map(poisObj.optString("indoor_map"));
poisBean.setIndoor_data(poisObj.optString("indoor_data"));
poisBean.setGroupbuy_num(poisObj.optString("groupbuy_num"));
poisBean.setDiscount_num(poisObj.optString("discount_num"));
poisBean.setBiz_ext(poisObj.optString("biz_ext"));
poisBean.setEvent(poisObj.optString("event"));
poisBean.setChildren(poisObj.optString("children"));
poisBean.setPhotos(poisObj.optString("photos"));

poisBeansList.add(poisBean);
}

jsonBean.setPois(poisBeansList);

}catch(IOException e)
{
e.printStackTrace();
}     //get数据

Conn c=new Conn();  //连接数据库
Connection con=   c.getConn();

try {
Statement sql;
ResultSet res;
int a;

sql=con.createStatement();
/*  sql.executeQuery("CREATE TABLE Map (id varchar(255), name varchar(255),tag varchar(255),"
+ "type varchar(255),typecode varchar(255), biz_type varchar(255),address varchar(255),location varchar(255),"
+ "tel varchar(255),postcode varchar(255),website varchar(255),email varchar(255),pcode varchar(255),pname varchar(255),"
+ "citycode varchar(255), cityname varchar(255), adcode varchar(255),adname varchar(255), importance varchar(255),shopid varchar(255),shopinfo varchar(255),poiweight varchar(255),"
+ "gridcode varchar(255),distance varchar(255),navi_poiid varchar(255),entr_location varchar(255),business_area varchar(255),exit_location varchar(255),"
+ "match varchar(255),recommend varchar(255),timestamp varchar(255),alias varchar(255),indoor_map varchar(255),indoor_data varchar(255),"
+ "groupbuy_num varchar(255),discount_num varchar(255),biz_ext varchar(255),event varchar(255),children varchar(255),photos varchar(400))  ");
*/

for (int i = 0; i < jsonBean.getPois().size(); i++) {
a = sql.executeUpdate("insert into Map (id,name,tag,type,typecode,biz_type,address,location,tel,postcode,website,email,pcode,pname,"
+ "citycode,cityname,adcode,adname,importance,shopid,shopinfo,poiweight,gridcode,distance,navi_poiid,entr_location,business_area,"
+ "exit_location,match,recommend,timestamp,alias,indoor_map,indoor_data,groupbuy_num,discount_num,biz_ext,event,children,photos) "
+ "values('"+jsonBean.getPois().get(i).getId()+"','"+jsonBean.getPois().get(i).getName()+"'"
+ ",'"+jsonBean.getPois().get(i).getTag()+"','"+jsonBean.getPois().get(i).getType()+"','"+jsonBean.getPois().get(i).getTypecode()+"'"
+ ",'"+jsonBean.getPois().get(i).getBiz_type()+"','"+jsonBean.getPois().get(i).getAddress()+"','"+jsonBean.getPois().get(i).getLocation()+"'  "
+ ",'"+jsonBean.getPois().get(i).getTel()+"','"+jsonBean.getPois().get(i).getPostcode()+"','"+jsonBean.getPois().get(i).getWebsite()+"','"+jsonBean.getPois().get(i).getEmail()+"'"
+ ",'"+jsonBean.getPois().get(i).getPcode()+"','"+jsonBean.getPois().get(i).getPname()+"','"+jsonBean.getPois().get(i).getCityname()+"','"+jsonBean.getPois().get(i).getCityname()+"'"
+ ",'"+jsonBean.getPois().get(i).getAdcode()+"','"+jsonBean.getPois().get(i).getAdname()+"','"+jsonBean.getPois().get(i).getImportance()+"','"+jsonBean.getPois().get(i).getShopid()+"'"
+ ",'"+jsonBean.getPois().get(i).getShopinfo()+"','"+jsonBean.getPois().get(i).getPoiweight()+"','"+jsonBean.getPois().get(i).getGridcode()+"','"+jsonBean.getPois().get(i).getDistance()+"'"
+ ",'"+jsonBean.getPois().get(i).getNavi_poiid()+"','"+jsonBean.getPois().get(i).getEntr_location()+"','"+jsonBean.getPois().get(i).getBusiness_area()+"','"+jsonBean.getPois().get(i).getExit_location()+"'"
+ ",'"+jsonBean.getPois().get(i).getMatch()+"','"+jsonBean.getPois().get(i).getRecommend()+"','"+jsonBean.getPois().get(i).getTimestamp()+"','"+jsonBean.getPois().get(i).getAlias()+"'"
+ ",'"+jsonBean.getPois().get(i).getIndoor_map()+"','"+jsonBean.getPois().get(i).getIndoor_data()+"','"+jsonBean.getPois().get(i).getGroupbuy_num()+"','"+jsonBean.getPois().get(i).getDiscount_num()+"' "
+ ",'"+jsonBean.getPois().get(i).getBiz_ext()+"','"+jsonBean.getPois().get(i).getEvent()+"','"+jsonBean.getPois().get(i).getChildren()+"','"+jsonBean.getPois().get(i).getPhotos()+"')");

}

} catch (Exception e) {
e.printStackTrace();
}

}
}


解析类中的 建表与更新分两步进行

所需jar包如下图



结果如图,已数组形式存储

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐