android省市區三級聯動
阿新 • • 發佈:2018-12-15
方式一(最簡便):
1.在project的build.gradle新增程式碼:
allprojects { repositories { jcenter() maven { url "https://jitpack.io" } } }
2.在app/build.gradle檔案新增如下程式碼
compile 'com.github.open-android:CityPickerWebView:0.1.0'
3.簡單的佈局檔案--activity_main.xml(TextView是選擇好的省市區,Button點選事件,出現三級聯動)
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.classical.example_citypicker.MainActivity"> <TextView android:id="@+id/tv_show" android:text="請選擇您所在的省市區" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:id="@+id/btn_selector" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="請選擇"/> </LinearLayout>
4.MainActivity.java
package com.classical.example_citypicker; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import me.leefeng.citypicker.CityPicker; import me.leefeng.citypicker.CityPickerListener; public class MainActivity extends AppCompatActivity implements CityPickerListener { private TextView mShow; private Button mSelector; private CityPicker cityPicker; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); cityPicker = new CityPicker(MainActivity.this,this); mSelector = (Button)findViewById(R.id.btn_selector); mShow = (TextView)findViewById(R.id.tv_show); mSelector.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { cityPicker.show(); } }); } @Override public void getCity(String s) { mShow.setText(s); } @Override public void onBackPressed() { if (cityPicker.isShow()) { cityPicker.close(); return; } super.onBackPressed(); } }
===========以上方法是完全引用別人github中的內容,如果要在市下面新增全部區,或者在省下面新增全部市,建議用第二種方式。
方法二:
--整體專案結構:
====下面是流程:
1.在build.gradle(Module:app)中新增依賴:
implementation 'com.contrarywind:Android-PickerView:4.1.6'
implementation 'com.google.code.gson:gson:2.6.2'
2.activity_main.xml中佈局:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.dell.provinces1.MainActivity"> <TextView android:id="@+id/tv_address" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="選擇地址" android:layout_centerInParent="true" /> </RelativeLayout>
3.控制元件的資料格式需要實體類(新建MainAcitivity同目錄下的JsonBean.java檔案)
package com.example.dell.provinces1; import com.contrarywind.interfaces.IPickerViewData; import java.util.List; public class JsonBean implements IPickerViewData { private String name; private List<CityBean> city; public String getName() { return name; } public void setName(String name) { this.name = name; } public List<CityBean> getCityList() { return city; } public void setCityList(List<CityBean> city) { this.city = city; } // 實現 IPickerViewData 介面, // 這個用來顯示在PickerView上面的字串, // PickerView會通過IPickerViewData獲取getPickerViewText方法顯示出來。 @Override public String getPickerViewText() { return this.name; } public static class CityBean { private String name; private List<String> area; public String getName() { return name; } public void setName(String name) { this.name = name; } public List<String> getArea() { return area; } public void setArea(List<String> area) { this.area = area; } } }
4.新建MainAcitvity.java同級目錄下的GetJsonDataUtil.java檔案
package com.example.dell.provinces1; import android.content.Context; import android.content.res.AssetManager; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class GetJsonDataUtil { public String getJson(Context context, String fileName) { StringBuilder stringBuilder = new StringBuilder(); try { AssetManager assetManager = context.getAssets(); BufferedReader bf = new BufferedReader(new InputStreamReader( assetManager.open(fileName))); String line; while ((line = bf.readLine()) != null) { stringBuilder.append(line); } } catch (IOException e) { e.printStackTrace(); } return stringBuilder.toString(); } }
5.MainAcitvity.java
package com.example.dell.provinces1; import android.app.Activity; import android.widget.TextView; import java.util.ArrayList; import android.view.View; import android.os.Bundle; import com.bigkoo.pickerview.view.OptionsPickerView; import com.bigkoo.pickerview.listener.OnOptionsSelectListener; import com.bigkoo.pickerview.builder.OptionsPickerBuilder; import org.json.JSONArray; import android.graphics.Color; import com.google.gson.Gson; public class MainActivity extends Activity { private TextView mTvAddress; private ArrayList<JsonBean> options1Items = new ArrayList<>(); //省 private ArrayList<ArrayList<String>> options2Items = new ArrayList<>();//市 private ArrayList<ArrayList<ArrayList<String>>> options3Items = new ArrayList<>();//區 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTvAddress = (TextView) findViewById(R.id.tv_address); initJsonData(); mTvAddress.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showPickerView(); } }); } private void showPickerView() {// 彈出選擇器(省市區三級聯動) OptionsPickerView pvOptions = new OptionsPickerBuilder(this, new OnOptionsSelectListener() { @Override public void onOptionsSelect(int options1, int options2, int options3, View v) { //返回的分別是三個級別的選中位置 mTvAddress.setText(options1Items.get(options1).getPickerViewText() + " " + options2Items.get(options1).get(options2) + " " + options3Items.get(options1).get(options2).get(options3)); } }) .setTitleText("城市選擇") .setDividerColor(Color.BLACK) .setTextColorCenter(Color.BLACK) //設定選中項文字顏色 .setContentTextSize(20) .build(); /*pvOptions.setPicker(options1Items);//一級選擇器 pvOptions.setPicker(options1Items, options2Items);//二級選擇器*/ pvOptions.setPicker(options1Items, options2Items, options3Items);//三級選擇器 pvOptions.show(); } private void initJsonData() {//解析資料 (省市區三級聯動) /** * 注意:assets 目錄下的Json檔案僅供參考,實際使用可自行替換檔案 * 關鍵邏輯在於迴圈體 * * */ String JsonData = new GetJsonDataUtil().getJson(this, "province.json");//獲取assets目錄下的json檔案資料 ArrayList<JsonBean> jsonBean = parseData(JsonData);//用Gson 轉成實體 /** * 新增省份資料 * * 注意:如果是新增的JavaBean實體,則實體類需要實現 IPickerViewData 介面, * PickerView會通過getPickerViewText方法獲取字串顯示出來。 */ options1Items = jsonBean; for (int i = 0; i < jsonBean.size(); i++) {//遍歷省份 ArrayList<String> CityList = new ArrayList<>();//該省的城市列表(第二級) ArrayList<ArrayList<String>> Province_AreaList = new ArrayList<>();//該省的所有地區列表(第三級) for (int c = 0; c < jsonBean.get(i).getCityList().size(); c++) {//遍歷該省份的所有城市 String CityName = jsonBean.get(i).getCityList().get(c).getName(); CityList.add(CityName);//新增城市 ArrayList<String> City_AreaList = new ArrayList<>();//該城市的所有地區列表 //如果無地區資料,建議新增空字串,防止資料為null 導致三個選項長度不匹配造成崩潰 if (jsonBean.get(i).getCityList().get(c).getArea() == null || jsonBean.get(i).getCityList().get(c).getArea().size() == 0) { City_AreaList.add(""); } else { City_AreaList.addAll(jsonBean.get(i).getCityList().get(c).getArea()); } Province_AreaList.add(City_AreaList);//新增該省所有地區資料 } /** * 新增城市資料 */ options2Items.add(CityList); /** * 新增地區資料 */ options3Items.add(Province_AreaList); } } public ArrayList<JsonBean> parseData(String result) {//Gson 解析 ArrayList<JsonBean> detail = new ArrayList<>(); try { JSONArray data = new JSONArray(result); Gson gson = new Gson(); for (int i = 0; i < data.length(); i++) { JsonBean entity = gson.fromJson(data.optJSONObject(i).toString(), JsonBean.class); detail.add(entity); } } catch (Exception e) { e.printStackTrace(); } return detail; } }
6.新建assets檔案,資料夾下存province.json
[ { "name": "北京市", "city": [ { "name": "北京市", "area": [ "東城區", "西城區", "崇文區", "宣武區", "朝陽區", "豐臺區", "石景山區", "海淀區", "門頭溝區", "房山區", "通州區", "順義區", "昌平區", "大興區", "平谷區", "懷柔區", "密雲縣", "延慶縣" ] } ] }, { "name": "天津市", "city": [ { "name": "天津市", "area": [ "和平區", "河東區", "河西區", "南開區", "河北區", "紅橋區", "塘沽區", "漢沽區", "大港區", "東麗區", "西青區", "津南區", "北辰區", "武清區", "寶坻區", "寧河縣", "靜海縣", "薊 縣" ] } ] }, { "name": "河北省", "city": [ { "name": "石家莊市", "area": [ "長安區", "橋東區", "橋西區", "新華區", "郊 區", "井陘礦區", "井陘縣", "正定縣", "欒城縣", "行唐縣", "靈壽縣", "高邑縣", "深澤縣", "贊皇縣", "無極縣", "平山縣", "元氏縣", "趙 縣", "辛集市", "藁", "晉州市", "新樂市", "鹿泉市" ] }, { "name": "唐山市", "area": [ "路南區", "路北區", "古冶區", "開平區", "新 區", "豐潤縣", "灤 縣", "灤南縣", "樂亭縣", "遷西縣", "玉田縣", "唐海縣", "遵化市", "豐南市", "遷安市" ] }, { "name": "秦皇島市", "area": [ "海港區", "山海關區", "北戴河區", "青龍滿族自治縣", "昌黎縣", "撫寧縣", "盧龍縣" ] }, { "name": "邯鄲市", "area": [ "邯山區", "叢臺區", "復興區", "峰峰礦區", "邯鄲縣", "臨漳縣", "成安縣", "大名縣", "涉 縣", "磁 縣", "肥鄉縣", "永年縣", "邱 縣", "雞澤縣", "廣平縣", "館陶縣", "魏 縣", "曲周縣", "武安市" ] }, { "name": "邢臺市", "area": [ "橋東區", "橋西區", "邢臺縣", "臨城縣", "內丘縣", "柏鄉縣", "隆堯縣", "任 縣", "南和縣", "寧晉縣", "鉅鹿縣", "新河縣", "廣宗縣", "平鄉縣", "威 縣", "清河縣", "臨西縣", "南宮市", "沙河市" ] }, { "name": "保定市", "area": [ "新市區", "北市區", "南市區", "滿城縣", "清苑縣", "淶水縣", "阜平縣", "徐水縣", "定興縣", "唐 縣", "高陽縣", "容城縣", "淶源縣", "望都縣", "安新縣", "易 縣", "曲陽縣", "蠡 縣", "順平縣", "博野", "雄縣", "涿州市", "定州市", "安國市", "高碑店市" ] }, { "name": "張家口", "area": [ "橋東區", "橋西區", "宣化區", "下花園區", "宣化縣", "張北縣", "康保縣", "沽源縣", "尚義縣", "蔚 縣", "陽原縣", "懷安縣", "萬全縣", "懷來縣", "涿鹿縣", "赤城縣", "崇禮縣" ] }, { "name": "承德市", "area": [ "雙橋區", "雙灤區", "鷹手營子礦區", "承德縣", "興隆縣", "平泉縣", "灤平縣", "隆化縣", "豐寧滿族自治縣", "寬城滿族自治縣", "圍場滿族蒙古族自治縣" ] }, { "name": "滄州市", "area": [ "新華區", "運河區", "滄 縣", "青 縣", "東光縣", "海興縣", "鹽山縣", "肅寧縣", "南皮縣", "吳橋縣", "獻 縣", "孟村回族自治縣", "泊頭市", "任丘市", "黃驊市", "河間市" ] }, { "name": "廊坊市", "area": [ "安次區", "固安縣", "永清縣", "香河縣", "大城縣", "文安縣", "大廠回族自治縣", "霸州市", "三河市" ] }, { "name": "衡水市", "area": [ "桃城區", "棗強縣", "武邑縣", "武強縣", "饒陽縣", "安平縣", "故城縣", "景 縣", "阜城縣", "冀州市", "深州市" ] } ] }, { "name": "山西省", "city": [ { "name": "太原市", "area": [ "小店區", "迎澤區", "杏花嶺區", "尖草坪區", "萬柏林區", "晉源區", "清徐縣", "陽曲縣", "婁煩縣", "古交市" ] }, { "name": "大同市", "area": [ "城 區", "礦 區", "南郊區", "新榮區", "陽高縣", "天鎮縣", "廣靈縣", "靈丘縣", "渾源縣", "左雲縣", "大同縣" ] }, { "name": "陽泉市", "area": [ "城 區", "礦 區", "郊 區", "平定縣", "盂 縣" ] }, { "name": "長治市", "area": [ "城 區", "郊 區", "長治縣", "襄垣縣", "屯留縣", "平順縣", "黎城縣", "壺關縣", "長子縣", "武鄉縣", "沁 縣", "沁源縣", "潞城市" ] }, { "name": "晉城市", "area": [ "城 區", "沁水縣", "陽城縣", "陵川縣", "澤州縣", "高平市" ] }, { "name": "朔州市", "area": [ "朔城區", "平魯區", "山陰縣", "應 縣", "右玉縣", "懷仁縣" ] }, { "name": "忻州市", "area": [ "忻府區", "原平市", "定襄縣", "五臺縣", "代 縣", "繁峙縣", "寧武縣", "靜樂縣", "神池縣", "五寨縣", "岢嵐縣", "河曲縣", "保德縣", "偏關縣" ] }, { "name": "呂梁市", "area": [ "離石區", "孝義市", "汾陽市", "文水縣", "交城縣", "興 縣", "臨 縣", "柳林縣", "石樓縣", "嵐 縣", "方山縣", "中陽縣", "交口縣" ] }, { "name": "晉中市", "area": [ "榆次市", "介休市", "榆社縣", "左權縣", "和順縣", "昔陽縣", "壽陽縣", "太谷縣", "祁 縣", "平遙縣", "靈石縣" ] }, { "name": "臨汾市", "area": [ "臨汾市", "侯馬市", "霍州市", "曲沃縣", "翼城縣", "襄汾縣", "洪洞縣", "古 縣", "安澤縣", "浮山縣", "吉 縣", "鄉寧縣", "蒲 縣", "大寧縣", "永和縣", "隰 縣", "汾西縣" ] }, { "name": "運城市", "area": [ "運城市", "永濟市", "河津市", "芮城縣", "臨猗縣", "萬榮縣", "新絳縣", "稷山縣", "聞喜縣", "夏 縣", "絳 縣", "平陸縣", "垣曲縣" ] } ] }, { "name": "內蒙古", "city": [ { "name": "呼和浩特市", "area": [ "新城區", "回民區", "玉泉區", "郊 區", "土默特左旗", "托克托縣", "和林格爾縣", "清水河縣", "武川縣" ] }, { "name": "包頭市", "area": [ "東河區", "昆都倫區", "青山區", "石柺礦區", "白雲礦區", "郊 區", "土默特右旗", "固陽縣", "達爾罕茂明安聯合旗" ] }, { "name": "烏海市", "area": [ "海勃灣區", "海南區", "烏達區" ] }, { "name": "赤峰市", "area": [ "紅山區", "元寶山區", "松山區", "阿魯科爾沁旗", "巴林左旗", "巴林右旗", "林西縣", "克什克騰旗", "翁牛特旗", "喀喇沁旗", "寧城縣", "敖漢旗" ] }, { "name": "呼倫貝爾市", "area": [ "海拉爾市", "滿洲裡市", "扎蘭屯市", "牙克石市", "根河市", "額爾古納市", "阿榮旗", "莫力達瓦達斡爾族自治旗", "鄂倫春自治旗", "鄂溫克族自治旗", "新巴爾虎右旗", "新巴爾虎左旗", "陳巴爾虎旗" ] }, { "name": "興安盟", "area": [ "烏蘭浩特市", "阿爾山市", "科爾沁右翼前旗", "科爾沁右翼中旗", "扎賚特旗", "突泉縣" ] }, { "name": "通遼市", "area": [ "科爾沁區", "霍林郭勒市", "科爾沁左翼中旗", "科爾沁左翼後旗", "開魯縣", "庫倫旗", "奈曼旗", "扎魯特旗" ] }, { "name": "錫林郭勒盟", "area": [ "二連浩特市", "錫林浩特市", "阿巴嘎旗", "蘇尼特左旗", "蘇尼特右旗", "東烏珠穆沁旗", "西烏珠穆沁旗", "太僕寺旗", "鑲黃旗", "正鑲白旗", "正藍旗", "多倫縣" ] }, { "name": "烏蘭察布盟", "area": [ "集寧市", "豐鎮市", "卓資縣", "化德縣", "商都縣", "興和縣", "涼城縣", "察哈爾右翼前旗", "察哈爾右翼中旗", "察哈爾右翼後旗", "四子王旗" ] }, { "name": "伊克昭盟", "area": [ "東勝市", "達拉特旗", "準格爾旗", "鄂托克前旗", "鄂托克旗", "杭錦旗", "烏審旗", "伊金霍洛旗" ] }, { "name": "巴彥淖爾盟", "area": [ "臨河市", "五原縣", "磴口縣", "烏拉特前旗", "烏拉特中旗", "烏拉特後旗", "杭錦後旗" ] }, { "name": "阿拉善盟", "area": [ "阿拉善左旗", "阿拉善右旗", "額濟納旗" ] } ] }, { "name": "遼寧省", "city": [ { "name": "瀋陽市", "area": [ "瀋河區", "皇姑區", "和平區", "大東區", "鐵西區", "甦家屯區", "東陵區", "于洪區", "新民市", "法庫縣", "遼中縣", "康平縣", "新城子區", "其他" ] }, { "name": "大連市", "area": [ "西崗區", "中山區", "沙河口區", "甘井子區", "旅順口區", "金州區", "瓦房店市", "普蘭店市", "莊河市", "長海縣", "其他" ] }, { "name": "鞍山市", "area": [ "鐵東區", "鐵西區", "立山區", "千山區", "海城市", "檯安縣", "岫巖滿族自治縣", "其他" ] }, { "name": "撫順市", "area": [ "順城區", "新撫區", "東洲區", "望花區", "撫順縣", "清原滿族自治縣", "新賓滿族自治縣", "其他" ] }, { "name": "本溪市", "area": [ "平山區", "明山區", "溪湖區", "南芬區", "本溪滿族自治縣", "桓仁滿族自治縣", "其他" ] }, { "name": "丹東市", "area": [ "振興區", "元寶區", "振安區", "東港市", "鳳城市", "寬甸滿族自治縣", "其他" ] }, { "name": "錦州市", "area": [ "太和區", "古塔區", "淩河區", "凌海市", "黑山縣", "義縣", "北寧市", "其他" ] }, { "name": "營口市", "area": [ "站前區", "西市區", "鮁魚圈區", "老邊區", "大石橋市", "蓋州市", "其他" ] }, { "name": "阜新市", "area": [ "海州區", "新邱區", "太平區", "清河門區", "細河區", "彰武縣", "阜新蒙古族自治縣", "其他" ] }, { "name": "遼陽市", "area": [ "白塔區", "文聖區", "巨集偉區", "太子河區", "弓長嶺區", "燈塔市", "遼陽縣", "其他" ] }, { "name": "盤錦", "area": [ "雙臺子區", "興隆臺區", "盤山縣", "大窪縣", "其他" ] }, { "name": "鐵嶺市", "area": [ "銀州區", "清河區", "調兵山市", "開原市", "鐵嶺縣", "昌圖縣", "西豐縣", "其他" ] }, { "name": "朝陽市", "area": [ "雙塔區", "龍城區", "凌源市", "北票市", "朝陽縣", "建平縣", "喀喇沁左翼蒙古族自治縣", "其他" ] }, { "name": "葫蘆島市", "area": [ "龍港區", "南票區", "連山區", "興城市", "綏中縣", "建昌縣", "其他" ] }, { "name": "其他", "area": [ "其他" ] } ] }, { "name": "吉林省", "city": [ { "name": "長春市", "area": [ "朝陽區", "寬城區", "二道區", "南關區", "綠園區", "雙陽區", "九臺市", "榆樹市", "德惠市", "農安縣", "其他" ] }, { "name": "吉林市", "area": [ "船營區", "昌邑區", "龍潭區", "豐滿區", "舒蘭市", "樺甸市", "蛟河市", "磐石市", "永吉縣", "其他" ] }, { "name": "四平", "area": [ "鐵西區", "鐵東區", "公主嶺市", "雙遼市", "梨樹縣", "伊通滿族自治縣", "其他" ] }, { "name": "遼源市", "area": [ "龍山區", "西安區", "東遼縣", "東豐縣", "其他" ] }, { "name": "通化市", "area": [ "東昌區", "二道江區", "梅河口市", "集安市", "通化縣", "輝南縣", "柳河縣", "其他" ] }, { "name": "白山市", "area": [ "八道江區", "江源區", "臨江市", "靖宇縣", "撫松縣", "長白朝鮮族自治縣", "其他" ] }, { "name": "松原市", "area": [ "寧江區", "乾安縣", "長嶺縣", "扶余縣", "前郭爾羅斯蒙古族自治縣", "其他" ] }, { "name": "白城市", "area": [ "洮北區", "大安市", "洮南市", "鎮賚縣", "通榆縣", "其他" ] }, { "name": "延邊朝鮮族自治州", "area": [ "延吉市", "圖們市", "敦化市", "龍井市", "琿春市", "和龍市", "安圖縣", "汪清縣", "其他" ] }, { "name": "其他", "area": [ "其他" ] } ] }, { "name": "黑龍江省", "city": [ { "name": "哈爾濱市", "area": [ "松北區", "道里區", "南崗區", "平房區", "香坊區", "道外區", "呼蘭區", "阿城區", "雙城市", "尚志市", "五常市", "賓縣", "方正縣", "通河縣", "巴彥縣", "延壽縣", "木蘭縣", "依蘭縣", "其他" ] }, { "name": "齊齊哈爾市", "area": [ "龍沙區", "昂昂溪區", "鐵鋒區", "建華區", "富拉爾基區", "碾子山區", "梅里斯達斡爾族區", "訥河市", "富裕縣", "拜泉縣", "甘南縣", "依安縣", "克山縣", "泰來縣", "克東縣", "龍江縣", "其他" ] }, { "name": "鶴崗市", "area": [ "興山區", "工農區", "南山區", "興安區", "向陽區", "東山區", "蘿北縣", "綏濱縣", "其他" ] }, { "name": "雙鴨山", "area": [ "尖山區", "嶺東區", "四方臺區", "寶山區", "集賢縣", "寶清縣", "友誼縣", "饒河縣", "其他" ] }, { "name": "雞西市", "area": [ "雞冠區", "恆山區", "城子河區", "滴道區", "梨樹區", "麻山區", "密山市", "虎林市", "雞東縣", "其他" ] }, { "name": "大慶市", "area": [ "薩爾圖區", "紅崗區", "龍鳳區", "讓胡路區", "大同區", "林甸縣", "肇州縣", "肇源縣", "杜爾伯特蒙古族自治縣", "其他" ] }, { "name": "伊春市", "area": [ "伊春區", "帶嶺區", "南岔區", "金山屯區", "西林區", "美溪區", "烏馬河區", "翠巒區", "友好區", "上甘嶺區", "五營區", "紅星區", "新青區", "湯旺河區", "烏伊嶺區", "鐵力市", "嘉蔭縣", "其他" ] }, { "name": "牡丹江市", "area": [ "愛民區", "東安區", "陽明區", "西安區", "綏芬河市", "寧安市", "海林市", "穆稜市", "林口縣", "東寧縣", "其他" ] }, { "name": "佳木斯市", "area": [ "向陽區", "前進區", "東風區", "郊區", "同江市", "富錦市", "樺川縣", "撫遠縣", "樺南縣", "湯原縣", "其他" ] }, { "name": "七臺河市", "area": [ "桃山區", "新興區", "茄子河區", "勃利縣", "其他" ] }, { "name": "黑河市", "area": [ "愛輝區", "北安市", "五大連池市", "遜克縣", "嫩江縣", "孫吳縣", "其他" ] }, { "name": "綏化市", "area": [ "北林區", "安達市", "肇東市", "海倫市", "綏稜縣", "蘭西縣", "明水縣", "青岡縣", "慶安縣", "望奎縣", "其他" ] }, { "name": "大興安嶺地區", "area": [ "呼瑪縣", "塔河縣", "漠河縣", "大興安嶺轄區", "其他" ] }, { "name": "其他", "area": [ "其他" ] } ] }, { "name": "上海市", "city": [ { "name": "上海市", "area": [ "黃浦區", "盧灣區", "徐彙區", "長寧區", "靜安區", "普陀區", "閘北區", "虹口區", "楊浦區", "寶山區", "閔行區", "嘉定區", "松江區", "金山區", "青浦區", "南匯區", "奉賢區", "浦東新區", "崇明縣", "其他" ] } ] }, { "name": "江蘇省", "city": [ { "name": "南京市", "area": [ "玄武區", "白下區", "秦淮區", "建鄴區", "鼓樓區", "下關區", "棲霞區", "雨花臺區", "浦口區", "江寧區", "六合區", "溧水縣", "高淳縣", "其他" ] }, { "name": "蘇州市", "area": [ "金閶區", "平江區", "滄浪區", "虎丘區", "吳中區", "相城區", "常熟市", "張家港市", "崑山市", "吳江市", "太倉市", "其他" ] }, { "name": "無錫市", "area": [ "崇安區", "南長區", "北塘區", "濱湖區", "錫山區", "惠山區", "江陰市", "宜興市", "其他" ] }, { "name": "常州市", "area": [ "鐘樓區", "天寧區", "慼墅堰區", "新北區", "武進區", "金壇市", "溧陽市", "其他" ] }, { "name": "鎮江市", "area": [ "京口區", "潤州區", "丹徒區", "丹陽市", "揚中市", "句容市", "其他" ] }, { "name": "南通市", "area": [ "崇川區", "港閘區", "通州市", "如皋市", "海門市", "啟東市", "海安縣", "如東縣", "其他" ] }, { "name": "泰州市", "area": [ "海陵區", "高港區", "姜堰市", "泰興市", "靖江市", "興化市", "其他" ] }, { "name": "揚州市", "area": [ "廣陵區", "維揚區", "邗江區", "江都市", "儀徵市", "高郵市", "寶應縣", "其他" ] }, { "name": "鹽城市", "area": [ "亭湖區", "鹽都區", "大豐市", "東臺市", "建湖縣", "射陽縣", "阜寧縣", "濱海縣", "響水縣", "其他" ] }, { "name": "連雲港市", "area": [ "新浦區", "海州區", "連雲區", "東海縣", "灌雲縣", "贛榆縣", "灌南縣", "其他" ] }, { "name": "徐州市", "area": [ "雲龍區", "鼓樓區", "九里區", "泉山區", "賈汪區", "邳州市", "新沂市", "銅山縣", "睢寧縣", "沛縣", "豐縣", "其他" ] }, { "name": "淮安市", "area": [ "清河區", "清浦區", "楚州區", "淮陰區", "漣水縣", "洪澤縣", "金湖縣", "盱眙縣", "其他" ] }, { "name": "宿遷市", "area": [ "宿城區", "宿豫區", "沭陽縣", "泗陽縣", "泗洪縣", "其他" ] }, { "name": "其他", "area": [ "其他" ] } ] }, { "name": "浙江省", "city": [ { "name": "杭州市", "area": [ "拱墅區", "西湖區", "上城區", "下城區", "江乾區", "濱江區", "餘杭區", "蕭山區", "建德市", "富陽市", "臨安市", "桐廬縣", "淳安縣", "其他" ] }, { "name": "寧波市", "area": [ "海曙區", "江東區", "江北區", "鎮海區", "北侖區", "鄞州區", "餘姚市", "慈溪市", "奉化市", "寧海縣", "象山縣", "其他" ] }, { "name": "溫州市", "area": [ "鹿城區", "龍灣區", "甌海區", "瑞安市", "樂清市", "永嘉縣", "洞頭縣", "平陽縣", "蒼南縣", "文成縣", "泰順縣", "其他" ] }, { "name": "嘉興市", "area": [ "秀城區", "秀洲區", "海寧市", "平湖市", "桐鄉市", "嘉善縣", "海鹽縣", "其他" ] }, { "name": "湖州市", "area": [ "吳興區", "南潯區", "長興縣", "德清縣", "安吉縣", "其他" ] }, { "name": "紹興市", "area": [ "越城區", "諸暨市", "上虞市", "嵊州市", "紹興縣", "新昌縣", "其他" ] }, { "name": "金華市", "area": [ "婺城區", "金東區", "蘭溪市", "義烏市", "東陽市", "永康市", "武義縣", "浦江縣", "磐安縣", "其他" ] }, { "name": "衢州市", "area": [ "柯城區", "衢江區", "江山市", "龍遊縣", "常山縣", "開化縣", "其他" ] }, { "name": "舟山市", "area": [ "定海區", "普陀區", "岱山縣", "嵊泗縣", "其他" ] }, { "name": "台州市", "area": [ "椒江區", "黃巖區", "路橋區", "臨海市", "溫嶺市", "玉環縣", "天台縣", "仙居縣", "三門縣", "其他" ] }, { "name": "麗水市", "area": [ "蓮都區", "龍泉市", "縉雲縣", "青田縣", "雲和縣", "遂昌縣", "松陽縣", "慶元縣", "景寧畲族自治縣", "其他" ] }, { "name": "其他市", "area": [ "其他" ] } ] }, { "name": "安徽省", "city": [ { "name": "合肥市", "area": [ "廬陽區", "瑤海區", "蜀山區", "包河區", "長豐縣", "肥東縣", "肥西縣", "其他" ] }, { "name": "蕪湖市", "area": [ "鏡湖區", "弋江區", "鳩江區", "三山區", "蕪湖縣", "南陵縣", "繁昌縣", "其他" ] }, { "name": "蚌埠