行政區劃、省市縣、三級結構,json格式

數據來源是百度百科的行政區劃,數據採集截止日期2018/9/28。

json格式比較簡單粗暴~~~能用就好,好用就行~~~

json下載點這裏

json下載點這裏

json下載點這裏

 

json數據舉例:

{
  "北京市": {
    "北京市": ["東城區", "西城區", "朝陽區", "豐臺區", "石景山區", "海淀區", "順義區", "通州區", "大興區", "房山區", "門頭溝區", "昌平區", "平谷區", "密雲區", "懷柔區", "延慶區"]
  },
  "天津市": {
    "天津市": ["和平區", "河東區", "河西區", "南開區", "河北區", "紅橋區", "濱海新區", "東麗區", "西青區", "津南區", "北辰區", "武清區", "寶坻區", "寧河區", "靜海區", "薊州區"]
  },
  "河北省": {

 

存儲數據結構,冗餘設計

public class Province {
    /**
     * 一級省級行政區:分爲省、自治區、直轄市、特別行政區;
     */
    private String name;

    /**
     * 二級地級行政區:分爲地級市、地區、自治州、盟;
     */
    private List<City> cities = new ArrayList<>();
}

public class City {

    /**
     * 所屬省份
     */
    private String province;
    /**
     * 二級地級行政區:分爲地級市、地區、自治州、盟;  prefecture
     */
    private String name;
    /**
     * 三級縣級行政區:分爲市轄區、縣、自治縣、縣級市、旗、自治旗、林區、特區;
     */
    private List<County> counties = new ArrayList<>();
}

public class County {
    /**
     * 所屬 省份
     */
    private String province;
    /**
     * 所屬 城市
     */
    private String city;
    /**
     * 三級縣級行政區:分爲市轄區、縣、自治縣、縣級市、旗、自治旗、林區、特區;
     */
    private String name;
}

java代碼讀取,代碼示例:(用fastjosn解析)

        List<Province> provinces = new ArrayList<>();
        String file = FileUtils.readFileToString(new File(path), "UTF-8");
        JSONObject items = JSONObject.parseObject(file);
        for (Map.Entry<String, Object> provinceEntry : items.entrySet()) {
            // 一級省級行政區:分爲省、自治區、直轄市、特別行政區;
            Province province = new Province();
            province.setName(provinceEntry.getKey());
            Object citiesObj = provinceEntry.getValue();
            for (Map.Entry<String, Object> cityEntry : ((JSONObject) citiesObj).entrySet()) {
                // 二級地級行政區:分爲地級市、地區、自治州、盟;
                // 至少有1個
                City city = new City();
                city.setName(cityEntry.getKey());
                province.addCity(city);
                city.setProvince(province.getName());
 
                Object countiesObj = cityEntry.getValue();
                // 三級縣級行政區:分爲市轄區、縣、自治縣、縣級市、旗、自治旗、林區、特區;
                // 可以爲空
                JSONArray countiesArray = (JSONArray) countiesObj;
                for (Object countyObj : countiesArray) {
                    County county = new County();
                    county.setName(countyObj.toString());
                    city.addCounty(county);
                    county.setProvince(province.getName());
                    county.setCity(city.getName());
                }
            }
            provinces.add(province);
        }

 

 

json下載點這裏

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章