java 如何把硬盘里面的中国省市区的json文件,解析出来,并存入到mysql数据库中的对应省市区三张表里面,希望哪位大神可以代码实现一下,给我看看,网上复制的地址就算了,看不明白(要包括电脑文件读取写法,和数据库的存储)
数据来源:http://blog.sina.com.cn/s/blog_95153c710102viow.html
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONObject;
public class ChinaCity {
/**
* 读取文件内容
* @param filePath 文件路径
* @return 文件字符串信息
*/
public static String readFile(String filePath) {
File file = new File(filePath);
if (!file.exists()) {
System.out.println("文件不存在");
return null;
}
//文件读取
BufferedReader br = null;
StringBuilder sb = null;
try {
br = new BufferedReader(new FileReader(file));
sb = new StringBuilder();
String line = "";
while ((line = br.readLine()) != null) {
sb.append(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null) {
br.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return sb != null ? sb.toString() : null;
}
/**
* 解析Json数据
* @param strJson
*/
public static List<City> parseJson(String strJson){
List<City> cities = new ArrayList<City>();
JSONArray jsonArray = new JSONArray(strJson);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject json = jsonArray.getJSONObject(i);
String cityName = json.getString("name");
cities.add(new City(cityName, parseJsonToCity(json.getJSONArray("city"))));
}
return cities;
}
/**
* 解析城市
* @param jsonArray
* @return
*/
public static List<City> parseJsonToCity(JSONArray jsonArray){
List<City> nextCities = new ArrayList<City>();
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject json = jsonArray.getJSONObject(i);
String cityName = json.getString("name");
nextCities.add(new City(cityName,ParseJsonToArea(json.getJSONArray("area"))));
}
return nextCities;
}
/**
* 解析地区
* @param jsonArray
* @return
*/
public static List<City> ParseJsonToArea(JSONArray jsonArray){
List<City> areas = new ArrayList<City>();
for (int i = 0; i < jsonArray.length(); i++) {
areas.add(new City(jsonArray.getString(i), null));
}
return areas;
}
public static void main(String[] args) {
String filePath = "C:\\Users\\Liheng\\Desktop\\ChinaCity.txt";
String json = readFile(filePath);
List<City> cities = parseJson(json);
for (City city : cities) {
city.print();
}
}
}
这个是读取并解析出来的数据,存入数据库,应该不难,想想很容易就不上代码了。
解析出来的部分结果:
北京:
北京:
东城区
西城区
崇文区
宣武区
朝阳区
丰台区
石景山区
海淀区
门头沟区
房山区
通州区
顺义区
昌平区
大兴区
平谷区
怀柔区
密云县
延庆县
天津:
天津:
和平区
河东区
河西区
南开区
河北区
红桥区
塘沽区
汉沽区
大港区
东丽区
西青区
津南区
北辰区
武清区
宝坻区
宁河县
静海县
蓟 县
不就是解析个json?
可以用gson或者jackson都可以实现,自己一步步实现不就可以了?
如果不懂gson或者jackson可以去百度下。