当前位置 : 主页 > 编程语言 > c++ >

java解析在线json中国行政区划数据,并存入到数据库

来源:互联网 收集:自由互联 发布时间:2021-06-30
java解析在线json文本 package com.dxwl.test;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.Reader;import java.net.URL;import java.nio.charset.Charset;
java解析在线json文本
package com.dxwl.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.nio.charset.Charset;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONPath;
import com.jfinal.kit.PropKit;

public class ReadJsonFromUrl {

	private static Connection conn = null;
	
	public static void main(String[] args) throws Exception {
		
		long time1 = System.currentTimeMillis();
		
		getConn();

	    /////////////////////////////////////
	    JSONObject json = readJsonFromUrl("http://haoyunhuo.cn/js/queryAllProvincesEx.js");
	    
	    int provinceSize = (Integer)JSONPath.eval(json,"provinces.size()");
        PreparedStatement pstProvince = null;  
        String sqlProvince = "insert into sys_province(id,provinceName,pinYin,pinYinChar,indexId) "
        		+ "values(?,?,?,?,?)";
        pstProvince = conn.prepareStatement(sqlProvince); 
	    
	    for (int i = 0 ; i < provinceSize ; i++){
	    	pstProvince.setString(1, JSONPath.eval(json,"provinces["+i+"].id").toString());
	    	pstProvince.setString(2, JSONPath.eval(json,"provinces["+i+"].provinceName").toString());
	    	pstProvince.setString(3, JSONPath.eval(json,"provinces["+i+"].pinYin").toString());
	    	pstProvince.setString(4, JSONPath.eval(json,"provinces["+i+"].pinYinChar").toString());
	    	pstProvince.setString(5, JSONPath.eval(json,"provinces["+i+"].indexId").toString());
	    	pstProvince.execute();
	    }	    
	    
	    /////////////////////////////////////
		json = readJsonFromUrl("http://haoyunhuo.cn/js/queryCities.js");
		
	    int citySize = (Integer)JSONPath.eval(json,"cities.size()");
        PreparedStatement pstCity = null;  
        String sqlCity = "insert into sys_city(id,name,cityPinyin,provinceId,hotCity,cityShortPY) "
        		+ "values(?,?,?,?,?,?)";
        pstCity = conn.prepareStatement(sqlCity); 
	    
	    for (int i = 0 ; i < citySize ; i++){
	    	pstCity.setString(1, JSONPath.eval(json,"cities["+i+"].id").toString());
	    	pstCity.setString(2, JSONPath.eval(json,"cities["+i+"].name").toString());
	    	pstCity.setString(3, JSONPath.eval(json,"cities["+i+"].cityPinyin").toString());
	    	pstCity.setString(4, JSONPath.eval(json,"cities["+i+"].provinceId").toString());
	    	pstCity.setString(5, JSONPath.eval(json,"cities["+i+"].hotCity").toString());
	    	pstCity.setString(6, JSONPath.eval(json,"cities["+i+"].cityShortPY").toString());
	    	pstCity.execute();
	    }	    
	    
	    /////////////////////////////////////
		json = readJsonFromUrl("http://haoyunhuo.cn/js/queryAllAreas.js");
		
	    int areaSize = (Integer)JSONPath.eval(json,"areas.size()");
        PreparedStatement pst = null;  
        String sqlArea = "insert into sys_area(id,cityId,cityName,areaName,provinceId,pinYin,pinYinChar,isShowWithCity) "
        		+ "values(?,?,?,?,?,?,?,?)";
        pst = conn.prepareStatement(sqlArea); 
	    
	    for (int i = 0 ; i < areaSize ; i++){
	        pst.setString(1, JSONPath.eval(json,"areas["+i+"].id").toString());
	        pst.setString(2, JSONPath.eval(json,"areas["+i+"].cityId").toString());
	        pst.setString(3, JSONPath.eval(json,"areas["+i+"].cityName").toString());
	        pst.setString(4, JSONPath.eval(json,"areas["+i+"].areaName").toString());
	        pst.setString(5, JSONPath.eval(json,"areas["+i+"].provinceId").toString());
	        pst.setString(6, JSONPath.eval(json,"areas["+i+"].pinYin").toString());
	        pst.setString(7, JSONPath.eval(json,"areas["+i+"].pinYinChar").toString());
	        pst.setString(8, JSONPath.eval(json,"areas["+i+"].isShowWithCity").toString());
	        pst.execute();
	    }
	    
	    long time2 = System.currentTimeMillis();
	    
	    System.out.println(time2 - time1);
	}
	




	
	private static String readAll(Reader rd) throws IOException {
		StringBuilder sb = new StringBuilder();
		int cp;
		while ((cp = rd.read()) != -1) {
			sb.append((char) cp);
		}
		return sb.toString();
	}

	public static JSONObject readJsonFromUrl(String url) throws IOException,
			JSONException {
		InputStream is = new URL(url).openStream();
		try {
			BufferedReader rd = new BufferedReader(new InputStreamReader(is,
					Charset.forName("UTF-8")));
			String jsonText = readAll(rd);
			JSONObject json = JSONObject.parseObject(jsonText);
			return json;
		} finally {
			is.close();
		}
	}
	
	
	public static void getConn() throws Exception {
		PropKit.use("db_config.properties");
        conn = DriverManager.getConnection(PropKit.get("jdbcUrl"),
        		PropKit.get("user"),
        		PropKit.get("password").trim());  
	
           
	}	
}
上一篇:SFTPUtils
下一篇:SnowflakeId
网友评论