用MyEclipse连接URL解析json对象,并将数据以表格形式写入PostgreSQL数据库
来源:互联网 发布:文章网站数据库设计 编辑:程序博客网 时间:2024/05/21 09:45
前言:
首先在高德平台上获取了key,并得到提取到部分杭州市公交站点的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
需要将网页中的信息解析为此格式:
并用Java在MyEclipse中写成表格形式,写入数据库Postgre中(主要是将pois中的内容写入):
这就是我们要完成的最终结果(如果用Python实现,会简单很多)。
一、建立Myeclipse与数据库的连接:
创建工程Copy Final,包geturl,类Conn.java
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"; //输入建立链接用的jar包 String url = "jdbc:postgresql://localhost:5432/fanqi"; //输入所连接的数据库的位置 String username = "postgres"; //数据库的用户名 String password = "postgre"; //数据库密码 Connection conn = null; //声明数据库连接对象 try { Class.forName(driver); // 加载数据库驱动类 conn = (Connection) DriverManager.getConnection(url, username, password); //初始化数据库连接 System.out.println("url"); } catch (ClassNotFoundException e) { //加载异常处理类 e.printStackTrace(); } catch (SQLException e) { //处理代码运行时出现的异常 e.printStackTrace(); } return conn; } }
二、定义所要打断的位置(建类JsonBean):
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() {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;}}
三、建立类Iputil,建立表格并写入数据库:
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 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();//打开URL链接 HttpURLConnection connection = null; if(urlConnection instanceof HttpURLConnection)//判断是否能打开URL { 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);//澶ф嫭鍙穙bject 瀛楃涓瞫tring 鏁扮粍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(); } Conn c=new Conn(); //连接数据库 Connection con=c.getConn(); try { Statement sql; ResultSet res; int a; sql=con.createStatement();//首次运行时去掉下面注释,在数据库中建立表格,建立好后,再加上注释,再次运行,向表中写入数据 /*sql.executeQuery("CREATE TABLE Map11 (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 Map11 (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包:
阅读全文
0 0
- 用MyEclipse连接URL解析json对象,并将数据以表格形式写入PostgreSQL数据库
- 前台将实体对象以json串形式传到后台并解析
- 安卓开发前后台通信,从数据库中取数据并在前台以表格形式显示,以json格式传输
- 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
- 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
- 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
- JS解析URL参数,并将参数以FORM表单形式提交
- JAVA连接SQL数据库,并以表格形式输出所有列
- 从数据库取出数据在jsp页面上以表格形式呈现,并对表格数据进行分页打印操作。
- 将二维数组用foreach遍历并以表格的形式输出
- java中查询数据库并以表格形式显示
- android studio app 前端获取json数据以对象的形式来解析展示
- 将数据以表格的形式保存到pdf中
- php 将数据 以excel 表格的形式导出
- 用PHP程序来查询数据库内容并以表格的形式输出
- Java技术-将java中Map类型数据转化为json数据并以Ajax形式返回
- 将JSON转成表格形式
- 从数据库读出数据然后以表格形式显示
- CoordinatorLayout之初步认识
- 移动硬盘H盘损坏文件系统变成RAW如何恢复
- 大数据(二十八)HBASE【Hbase 体系架构】
- handler
- 通用Mapper和PageHelper插件 学习笔记
- 用MyEclipse连接URL解析json对象,并将数据以表格形式写入PostgreSQL数据库
- centos刚部署好就遇到Jquery file upload. Failed to resize image (original thumbnail)
- day7上
- QSGMII
- RxJava的基本使用
- 中国国内采购平台品牌排行
- 解决@responseBody返回数据乱码问题
- Leetcode:Distinct Subsequences
- 类训练-学生管理实现