https://wuliu.taobao.com/user/output_address.do?range=country
https://wuliu.taobao.com/user/output_address.do?range=province
https://wuliu.taobao.com/user/output_address.do?range=city
https://wuliu.taobao.com/user/output_address.do?range=county
将上面获取的json拷贝到txt文件里面,下面是mac系统的,如果是windows系统,那么修改
String url = "/Users/tentsuuhou/Desktop/"+name+".txt";
这个路径转换程你拷贝json到txt文件的路径就可以了
package com.dtb.member.controller.api;
import com.dtb.member.mapper.AreaDaoMapper;
import com.dtb.member.service.ApiLogService;
import com.dtb.member.util.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.*;
/**
* @Author:ChengJian
* @Description:
* @Date: Created in 下午3:21 2019/4/2
*/
@Controller
@RequestMapping(value = "/upload")
public class AreaController {
@Autowired
AreaDaoMapper areaDaoMapper;
@RequestMapping(value = "/area.html")
@ResponseBody
public String upload(String name) throws IOException {
String url = "/Users/tentsuuhou/Desktop/"+name+".txt";
File file = new File(url);
FileReader reader = new FileReader(file);
int fileLength = (int)file.length();
char[] chars = new char[fileLength];
reader.read(chars);
String area [] = String.valueOf(chars).split("]");
List<Map<String,Object>> list = new ArrayList<>();
Object object[] = null;
String everyRecords [] = null;
String str = "";
int areaLength = area.length;
int m = 0;
for(int j = 0; j < areaLength;j++){
str = (String)area[j];
str = str.substring(2,str.length());
everyRecords = str.split("'");
if(everyRecords.length == 8){
Map<String,Object> map = new HashMap<>();
if(everyRecords[1].length() == 6){
map.put("num1",everyRecords[1]);
map.put("num2",everyRecords[3]);
map.put("num3",everyRecords[5].equals("1")?"0086":everyRecords[5]);
map.put("num4",everyRecords[7]);
map.put("num5",DateUtils.getDateToyyyy_MM_dd_HH_mm_ss(new Date()));
map.put("num6",DateUtils.getDateToyyyy_MM_dd_HH_mm_ss(new Date()));
list.add(map);
}else if(everyRecords[1].length() < 6){
//去除其他国家的记录
m++;
}
//添加中国区域代码
if(m == 1){
map.put("num1","0086");
map.put("num2","中国");
map.put("num3","0");
map.put("num4","zhongguo");
map.put("num5",DateUtils.getDateToyyyy_MM_dd_HH_mm_ss(new Date()));
map.put("num6",DateUtils.getDateToyyyy_MM_dd_HH_mm_ss(new Date()));
list.add(map);
}
}
}
if(list != null){
areaDaoMapper.insertArea(list);
}else{
System.out.println("List is null");
}
return "NICE";
}
}
public interface AreaDaoMapper {
int insertArea(List<Map<String,Object>> list);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dtb.member.mapper.AreaDaoMapper">
<insert id="insertArea" parameterType="java.util.Map">
INSERT INTO t_shop_county
(administrative_code, area_name, parent_administrative_code, pin_yin_name, add_time, update_time)
VALUES
<foreach collection="list" index="index" item="item" separator=",">
(#{item.num1},#{item.num2},#{item.num3},#{item.num4},#{item.num5},#{item.num6})
</foreach>
</insert>
</mapper>
转载于:https://my.oschina.net/mdxlcj/blog/3031499