PickerView(二級聯動)
最近新學會了一個技能 不敢說寫的詳細所以在此貼上大佬的部落格地址
寫這篇部落格的目的有兩個 一個是為了自己後期來看 另一個是為了讓有需要的朋友看看我懵懵懂懂犯下的錯 跳過一些誤區 節省時間
廢話不多說 下邊開始正題
PickerView框架:實現聯動很方便 一級二級三級都差不多
先上一個二級聯動的圖
任務是把一個json.txt的檔案解析 實現二級聯動
1、先導依賴:
//Gson解析 implementation 'com.google.code.gson:gson:2.8.1' //PickerView聯動框架 implementation 'com.contrarywind:Android-PickerView:4.1.6'
2、在main資料夾下建立assets的資料夾用於放儲存地址資料的json檔案city.json。city.json檔案裡的內容會附在最後。效果如下。
需要把 .txt 檔案改為 .json
3、然後建一個實體類 (GsonFormat /就是ALT+S) 記得實現 IPickerViewData 不然後果很嚴重
(一級列表白板/嚴重卡頓/記憶體溢位 )別問我是怎麼知道的
public class textBean implements IPickerViewData {
。。。下邊我就不粘了
然後需要重寫一個方法 (name是你一級列表需要顯示的那個en...成員變數)
@Override
public String getPickerViewText() {
return this.name;
}
4、這是一個可以將json檔案裡的資料轉換成json字串的工具類(這個直接用就行 後邊程式碼已經呼叫了 完全不用管)
package com.example.lin.mylanya.three; import android.content.Context; import android.content.res.AssetManager; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; 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、解析資料
先new聯動需要的集合
private ArrayList<textBean> options1Items = new ArrayList<>();//一級
private ArrayList<ArrayList<String>> options2Items = new ArrayList<>();//二級
// private ArrayList<ArrayList<ArrayList<String>>> options3Items = new ArrayList<>();//三級
解析資料的方法
我這邊的方法是直接把gson轉成的實體賦值給一級列表的集合了
private void initJsonData() {//解析資料
/**
* 注意:assets 目錄下的Json檔案僅供參考,實際使用可自行替換檔案
* 關鍵邏輯在於迴圈體
* */
String CityData = new GetJsonDataUtil().getJson(this, "city.json");//獲取assets目錄下的json檔案資料
options1Items = parseData(CityData);//用Gson 轉成實體
/**
* 新增省份資料
* 注意:如果是新增的JavaBean實體,則實體類需要實現 IPickerViewData 介面,
* PickerView會通過getPickerViewText方法獲取字串顯示出來。
*/
for (int i = 0; i < options1Items.size(); i++) {//遍歷省份
ArrayList<String> CityList = new ArrayList<>();//該省的城市列表(第二級)
for (int i1 = 0; i1 < options1Items.get(i).getCityBeanList().size(); i1++) {//遍歷該省份的所有城市
String name = options1Items.get(i).getCityBeanList().get(i1).getName();
CityList.add(name);//新增城市
}
/**
* 新增城市資料
* 把二級放入一級
*/
options2Items.add(CityList);
}
mHandler.sendEmptyMessage(MSG_LOAD_SUCCESS);
}
還有一個把Gson轉成實體類的方法 不用改直接用就行
public ArrayList<textBean> parseData(String result) {//Gson 解析
ArrayList<textBean> detail = new ArrayList<>();
try {
JSONArray data = new JSONArray(result);
Gson gson = new Gson();
for (int i = 0; i < data.length(); i++) {
textBean entity = gson.fromJson(data.optJSONObject(i).toString(), textBean.class);
detail.add(entity);
}
} catch (Exception e) {
e.printStackTrace();
mHandler.sendEmptyMessage(MSG_LOAD_FAILED);
}
return detail;
}
到目前位置一級二級的集合都已經放入值了
6、PickerView 劃重點。。。
看了好幾個部落格都是17年的 匯入的依賴和現在的不太一樣 所以寫法也稍微有點差別 (具體差別可以對比上別我貼出的大佬部落格)
這是現在的用法
private void ShowPickerView() {// 彈出地址選擇器
OptionsPickerView pvOptions = new OptionsPickerBuilder(this, new OnOptionsSelectListener() {
@Override
public void onOptionsSelect(int options1, int options2, int options3, View v) {
//返回的分別是三個級別的選中位置
province = options1Items.get(options1).getName();
city = options2Items.get(options1).get(options2);
// + options3Items.get(options1).get(options2).get(options3);
mLin.setText(province + city);//選定後顯示
}
})
.setDividerColor(Color.BLACK)//這幾個值沒需求的可以不要
.setTextColorCenter(Color.BLACK) //設定選中項文字顏色
.setContentTextSize(20)
.setOutSideCancelable(false)// default is true
.build();//這個不能丟
pvOptions.setPicker(options1Items, options2Items);//二級選擇器(市區)
//pvOptions.setPicker(options1Items, options2Items, options3Items);//三級選擇器
pvOptions.show();
}
7、因為我們要載入json檔案中的資料,這屬於耗時操作需要一個子執行緒,資料載入完畢才能讓選擇器展示資料。這裡免我們用到了Handle解決這個問題。 (往方法區粘就行)
//判斷地址資料是否獲取成功
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case MSG_LOAD_DATA:
if (thread == null) {//如果已建立就不再重新建立子執行緒了
Log.i("addr", "地址資料開始解析");
thread = new Thread(new Runnable() {
@Override
public void run() {
// 寫子執行緒中的操作,解析省市區資料
initJsonData();
}
});
thread.start();
}
break;
case MSG_LOAD_SUCCESS:
Log.i("addr", "地址資料獲取成功");
isLoaded = true;
break;
case MSG_LOAD_FAILED:
Log.i("addr", "地址資料獲取失敗");
break;
}
}
};
在onCreate()裡面啟動handle執行緒
mHandler.sendEmptyMessage(MSG_LOAD_DATA);
8、city.json 就也貼上吧
下邊除了這個就沒了 別往下翻了 over
[
{
"id": 1,
"name": "北京",
"cityBeanList": [
{
"id": 1,
"name": "東城區"
},
{
"id": 2,
"name": "西城區"
},
{
"id": 3,
"name": "崇文區"
},
{
"id": 4,
"name": "宣武區"
},
{
"id": 5,
"name": "朝陽區"
},
{
"id": 6,
"name": "豐臺區"
},
{
"id": 7,
"name": "石景山區"
},
{
"id": 8,
"name": "海淀區"
},
{
"id": 9,
"name": "門頭溝區"
},
{
"id": 10,
"name": "房山區"
},
{
"id": 11,
"name": "通州區"
},
{
"id": 12,
"name": "順義區"
},
{
"id": 13,
"name": "昌平區"
},
{
"id": 14,
"name": "大興區"
},
{
"id": 15,
"name": "懷柔區"
},
{
"id": 16,
"name": "平谷區"
},
{
"id": 17,
"name": "密雲縣"
},
{
"id": 18,
"name": "延慶縣"
}
]
},
{
"id": 2,
"name": "上海",
"cityBeanList": [
{
"id": 107,
"name": "黃浦區"
},
{
"id": 108,
"name": "盧灣區"
},
{
"id": 109,
"name": "徐彙區"
},
{
"id": 110,
"name": "長寧區"
},
{
"id": 111,
"name": "靜安區"
},
{
"id": 112,
"name": "普陀區"
},
{
"id": 113,
"name": "閘北區"
},
{
"id": 114,
"name": "虹口區"
},
{
"id": 115,
"name": "楊浦區"
},
{
"id": 116,
"name": "閔行區"
},
{
"id": 117,
"name": "寶山區"
},
{
"id": 118,
"name": "嘉定區"
},
{
"id": 119,
"name": "浦東新區"
},
{
"id": 120,
"name": "金山區"
},
{
"id": 121,
"name": "松江區"
},
{
"id": 122,
"name": "青浦區"
},
{
"id": 123,
"name": "南匯區"
},
{
"id": 124,
"name": "奉賢區"
},
{
"id": 125,
"name": "崇明縣"
}
]
},
{
"id": 3,
"name": "天津",
"cityBeanList": [
{
"id": 19,
"name": "和平區"
},
{
"id": 20,
"name": "河東區"
},
{
"id": 21,
"name": "河西區"
},
{
"id": 22,
"name": "南開區"
},
{
"id": 23,
"name": "河北區"
},
{
"id": 24,
"name": "紅橋區"
},
{
"id": 25,
"name": "塘沽區"
},
{
"id": 26,
"name": "漢沽區"
},
{
"id": 27,
"name": "大港區"
},
{
"id": 28,
"name": "東麗區"
},
{
"id": 29,
"name": "西青區"
},
{
"id": 30,
"name": "津南區"
},
{
"id": 31,
"name": "北辰區"
},
{
"id": 32,
"name": "武清區"
},
{
"id": 33,
"name": "寶坻區"
},
{
"id": 34,
"name": "寧河縣"
},
{
"id": 35,
"name": "靜海縣"
},
{
"id": 36,
"name": "薊 縣"
}
]
},
{
"id": 4,
"name": "重慶",
"cityBeanList": [
{
"id": 287,
"name": "萬州區"
},
{
"id": 288,
"name": "涪陵區"
},
{
"id": 289,
"name": "渝中區"
},
{
"id": 290,
"name": "大渡口區"
},
{
"id": 291,
"name": "江北區"
},
{
"id": 292,
"name": "沙坪壩區"
},
{
"id": 293,
"name": "九龍坡區"
},
{
"id": 294,
"name": "南岸區"
},
{
"id": 295,
"name": "北碚區"
},
{
"id": 296,
"name": "萬盛區"
},
{
"id": 297,
"name": "雙橋區"
},
{
"id": 298,
"name": "渝北區"
},
{
"id": 299,
"name": "巴南區"
},
{
"id": 300,
"name": "黔江區"
},
{
"id": 301,
"name": "長壽區"
},
{
"id": 302,
"name": "綦江縣"
},
{
"id": 303,
"name": "潼南縣"
},
{
"id": 304,
"name": "銅梁縣"
},
{
"id": 305,
"name": "大足縣"
},
{
"id": 306,
"name": "榮昌縣"
},
{
"id": 307,
"name": "璧山縣"
},
{
"id": 308,
"name": "梁平縣"
},
{
"id": 309,
"name": "城口縣"
},
{
"id": 310,
"name": "豐都縣"
},
{
"id": 311,
"name": "墊江縣"
},
{
"id": 312,
"name": "武隆縣"
},
{
"id": 313,
"name": "忠 縣"
},
{
"id": 314,
"name": "開 縣"
},
{
"id": 315,
"name": "雲陽縣"
},
{
"id": 316,
"name": "奉節縣"
},
{
"id": 317,
"name": "巫山縣"
},
{
"id": 318,
"name": "巫溪縣"
},
{
"id": 319,
"name": "石柱縣"
},
{
"id": 320,
"name": "秀山縣"
},
{
"id": 321,
"name": "酉陽縣"
},
{
"id": 322,
"name": "彭水縣"
},
{
"id": 323,
"name": "江津市"
},
{
"id": 324,
"name": "合川市"
},
{
"id": 325,
"name": "永川市"
},
{
"id": 326,
"name": "南川市"
}
]
},
{
"id": 5,
"name": "安徽",
"cityBeanList": [
{
"id": 150,
"name": "合肥"
},
{
"id": 151,
"name": "蕪湖"
},
{
"id": 152,
"name": "蚌埠"
},
{
"id": 153,
"name": "淮南"
},
{
"id": 154,
"name": "馬鞍山"
},
{
"id": 155,
"name": "淮北"
},
{
"id": 156,
"name": "銅陵"
},
{
"id": 157,
"name": "安慶"
},
{
"id": 158,
"name": "黃山"
},
{
"id": 159,
"name": "滁州"
},
{
"id": 160,
"name": "阜陽"
},
{
"id": 161,
"name": "宿州"
},
{
"id": 162,
"name": "巢湖"
},
{
"id": 163,
"name": "六安"
},
{
"id": 164,
"name": "亳州"
},
{
"id": 165,
"name": "池州"
},
{
"id": 166,
"name": "宣城"
}
]
},
{
"id": 6,
"name": "湖南",
"cityBeanList": [
{
"id": 235,
"name": "長沙"
},
{
"id": 236,
"name": "株洲"
},
{
"id": 237,
"name": "湘潭"
},
{
"id": 238,
"name": "衡陽"
},
{
"id": 239,
"name": "邵陽"
},
{
"id": 240,
"name": "岳陽"
},
{
"id": 241,
"name": "常德"
},
{
"id": 242,
"name": "張家界"
},
{
"id": 243,
"name": "益陽"
},
{
"id": 244,
"name": "郴州"
},
{
"id": 245,
"name": "永州"
},
{
"id": 246,
"name": "懷化"
},
{
"id": 247,
"name": "婁底"
},
{
"id": 248,
"name": "湘西"
}
]
},
{
"id": 7,
"name": "湖北",
"cityBeanList": [
{
"id": 221,
"name": "武漢"
},
{
"id": 222,
"name": "黃石"
},
{
"id": 223,
"name": "十堰"
},
{
"id": 224,
"name": "宜昌"
},
{
"id": 225,
"name": "襄樊"
},
{
"id": 226,
"name": "鄂州"
},
{
"id": 227,
"name": "荊門"
},
{
"id": 228,
"name": "孝感"
},
{
"id": 229,
"name": "荊州"
},
{
"id": 230,
"name": "黃岡"
},
{
"id": 231,
"name": "咸寧"
},
{
"id": 232,
"name": "隨州"
},
{
"id": 233,
"name": "恩施"
}
]
},
{
"id": 8,
"name": "江蘇",
"cityBeanList": [
{
"id": 126,
"name": "南京"
},
{
"id": 127,
"name": "無錫"
},
{
"id": 128,
"name": "徐州"
},
{
"id": 129,
"name": "常州"
},
{
"id": 130,
"name": "蘇州"
},
{
"id": 131,
"name": "南通"
},
{
"id": 132,
"name": "連雲港"
},
{
"id": 133,
"name": "淮安"
},
{
"id": 134,
"name": "鹽城"
},
{
"id": 135,
"name": "揚州"
},
{
"id": 136,
"name": "鎮江"
},
{
"id": 137,
"name": "泰州"
},
{
"id": 138,
"name": "宿遷"
}
]
},
{
"id": 9,
"name": "浙江",
"cityBeanList": [
{
"id": 139,
"name": "杭州"
},
{
"id": 140,
"name": "寧波"
},
{
"id": 141,
"name": "溫州"
},
{
"id": 142,
"name": "嘉興"
},
{
"id": 143,
"name": "湖州"
},
{
"id": 144,
"name": "紹興"
},
{
"id": 145,
"name": "金華"
},
{
"id": 146,
"name": "衢州"
},
{
"id": 147,
"name": "舟山"
},
{
"id": 148,
"name": "台州"
},
{
"id": 149,
"name": "麗水"
}
]
},
{
"id": 10,
"name": "四川",
"cityBeanList": [
{
"id": 327,
"name": "成都"
},
{
"id": 328,
"name": "自貢"
},
{
"id": 329,
"name": "攀枝花"
},
{
"id": 330,
"name": "瀘州"
},
{
"id": 331,
"name": "德陽"
},
{
"id": 332,
"name": "綿陽"
},
{
"id": 333,
"name": "廣元"
},
{
"id": 334,
"name": "遂寧"
},
{
"id": 335,
"name": "內江"
},
{
"id": 336,
"name": "樂山"
},
{
"id": 337,
"name": "南充"
},
{
"id": 338,
"name": "眉山"
},
{
"id": 339,
"name": "宜賓"
},
{
"id": 340,
"name": "廣安"
},
{
"id": 341,
"name": "達州"
},
{
"id": 342,
"name": "雅安"
},
{
"id": 343,
"name": "巴中"
},
{
"id": 344,
"name": "資陽"
},
{
"id": 345,
"name": "阿壩"
},
{
"id": 346,
"name": "甘孜"
},
{
"id": 347,
"name": "涼山"
}
]
},
{
"id": 11,
"name": "貴州",
"cityBeanList": [
{
"id": 348,
"name": "貴陽"
},
{
"id": 349,
"name": "六盤水"
},
{
"id": 350,
"name": "遵義"
},
{
"id": 351,
"name": "安順"
},
{
"id": 352,
"name": "銅仁地區"
},
{
"id": 353,
"name": "黔西南"
},
{
"id": 354,
"name": "畢節"
},
{
"id": 355,
"name": "黔東南"
},
{
"id": 356,
"name": "黔南"
}
]
},
{
"id": 12,
"name": "甘肅",
"cityBeanList": [
{
"id": 390,
"name": "蘭州"
},
{
"id": 391,
"name": "嘉峪關"
},
{
"id": 392,
"name": "金昌"
},
{
"id": 393,
"name": "白銀"
},
{
"id": 394,
"name": "天水"
},
{
"id": 395,
"name": "武威"
},
{
"id": 396,
"name": "張掖"
},
{
"id": 397,
"name": "平涼"
},
{
"id": 398,
"name": "酒泉"
},
{
"id": 399,
"name": "慶陽"
},
{
"id": 400,
"name": "定西"
},
{
"id": 401,
"name": "隴南"
},
{
"id": 402,
"name": "臨夏"
},
{
"id": 403,
"name": "甘南"
}
]
},
{
"id": 13,
"name": "青海",
"cityBeanList": [
{
"id": 404,
"name": "西寧"
},
{
"id": 405,
"name": "海東"
},
{
"id": 406,
"name": "海北"
},
{
"id": 407,
"name": "黃南"
},
{
"id": 408,
"name": "海南"
},
{
"id": 409,
"name": "果洛"
},
{
"id": 410,
"name": "玉樹"
},
{
"id": 411,
"name": "海西"
}
]
},
{
"id": 14,
"name": "山西",
"cityBeanList": [
{
"id": 48,
"name": "太原"
},
{
"id": 49,
"name": "大同"
},
{
"id": 50,
"name": "陽泉"
},
{
"id": 51,
"name": "長治"
},
{
"id": 52,
"name": "晉城"
},
{
"id": 53,
"name": "朔州"
},
{
"id": 54,
"name": "晉中"
},
{
"id": 55,
"name": "運城"
},
{
"id": 56,
"name": "忻州"
},
{
"id": 57,
"name": "臨汾"
},
{
"id": 58,
"name": "呂梁"
}
]
},
{
"id": 15,
"name": "山東",
"cityBeanList": [
{
"id": 187,
"name": "濟南"
},
{
"id": 188,
"name": "青島"
},
{
"id": 189,
"name": "淄博"
},
{
"id": 190,
"name": "棗莊"
},
{
"id": 191,
"name": "東營"
},
{
"id": 192,
"name": "煙臺"
},
{
"id": 193,
"name": "濰坊"
},
{
"id": 194,
"name": "濟寧"
},
{
"id": 195,
"name": "泰安"
},
{
"id": 196,
"name": "威海"
},
{
"id": 197,
"name": "日照"
},
{
"id": 198,
"name": "萊蕪"
},
{
"id": 199,
"name": "臨沂"
},
{
"id": 200,
"name": "德州"
},
{
"id": 201,
"name": "聊城"
},
{
"id": 202,
"name": "濱州"
},
{
"id": 203,
"name": "菏澤"
}
]
},
{
"id": 16,
"name": "陝西",
"cityBeanList": [
{
"id": 380,
"name": "西安"
},
{
"id": 381,
"name": "銅川"
},
{
"id": 382,
"name": "寶雞"
},
{
"id": 383,
"name": "咸陽"
},
{
"id": 384,
"name": "渭南"
},
{
"id": 385,
"name": "延安"
},
{
"id": 386,
"name": "漢中"
},
{
"id": 387,
"name": "榆林"
},
{
"id": 388,
"name": "安康"
},
{
"id": 389,
"name": "商洛"
}
]
},
{
"id": 17,
"name": "河南",
"cityBeanList": [
{
"id": 204,
"name": "鄭州"
},
{
"id": 205,
"name": "開封"
},
{
"id": 206,
"name": "洛陽"
},
{
"id": 207,
"name": "平頂山"
},
{
"id": 208,
"name": "安陽"
},
{
"id": 209,
"name": "鶴壁"
},
{
"id": 210,
"name": "新鄉"
},
{
"id": 211,
"name": "焦作"
},
{
"id": 212,
"name": "濮陽"
},
{
"id": 213,
"name": "許昌"
},
{
"id": 214,
"name": "漯河"
},
{
"id": 215,
"name": "三門峽"
},
{
"id": 216,
"name": "南陽"
},
{
"id": 217,
"name": "商丘"
},
{
"id": 218,
"name": "信陽"
},
{
"id": 219,
"name": "周口"
},
{
"id": 220,
"name": "駐馬店"
}
]
},
{
"id": 18,
"name": "黑龍江",
"cityBeanList": [
{
"id": 94,
"name": "哈爾濱"
},
{
"id": 95,
"name": "齊齊哈爾"
},
{
"id": 96,
"name": "雞西"
},
{
"id": 97,
"name": "鶴崗"
},
{
"id": 98,
"name": "雙鴨山"
},
{
"id": 99,
"name": "大慶"
},
{
"id": 100,
"name": "伊春"
},
{
"id": 101,
"name": "佳木斯"
},
{
"id": 102,
"name": "七臺河"
},
{
"id": 103,
"name": "牡丹江"
},
{
"id": 104,
"name": "黑河"
},
{
"id": 105,
"name": "綏化"
},
{
"id": 106,
"name": "大興安嶺"
}
]
},
{
"id": 19,
"name": "河北",
"cityBeanList": [
{
"id": 37,
"name": "石家莊"
},
{
"id": 38,
"name": "唐山"
},
{
"id": 39,
"name": "秦皇島"
},
{
"id": 40,
"name": "邯鄲"
},
{
"id": 41,
"name": "邢臺"
},
{
"id": 42,
"name": "保定"
},
{
"id": 43,
"name": "張家口"
},
{
"id": 44,
"name": "承德"
},
{
"id": 45,
"name": "滄州"
},
{
"id": 46,
"name": "廊坊"
},
{
"id": 47,
"name": "衡水"
}
]
},
{
"id": 20,
"name": "福建",
"cityBeanList": [
{
"id": 167,
"name": "福州"
},
{
"id": 168,
"name": "廈門"
},
{
"id": 169,
"name": "莆田"
},
{
"id": 170,
"name": "三明"
},
{
"id": 171,
"name": "泉州"
},
{
"id": 172,
"name": "漳州"
},
{
"id": 173,
"name": "南平"
},
{
"id": 174,
"name": "龍巖"
},
{
"id": 175,
"name": "寧德"
}
]
},
{
"id": 21,
"name": "雲南",
"cityBeanList": [
{
"id": 357,
"name": "昆明"
},
{
"id": 358,
"name": "曲靖"
},
{
"id": 359,
"name": "玉溪"
},
{
"id": 360,
"name": "保山"
},
{
"id": 361,
"name": "昭通"
},
{
"id": 362,
"name": "麗江"
},
{
"id": 363,
"name": "思茅"
},
{
"id": 364,
"name": "臨滄"
},
{
"id": 365,
"name": "楚雄"
},
{
"id": 366,
"name": "紅河"
},
{
"id": 367,
"name": "文山"
},
{
"id": 368,
"name": "西雙版納"
},
{
"id": 369,
"name": "大理"
},
{
"id": 370,
"name": "德巨集"
},
{
"id": 371,
"name": "怒江"
},
{
"id": 372,
"name": "迪慶"
}
]
},
{
"id": 22,
"name": "江西",
"cityBeanList": [
{
"id": 176,
"name": "南昌"
},
{
"id": 177,
"name": "景德鎮"
},
{
"id": 178,
"name": "萍鄉"
},
{
"id": 179,
"name": "九江"
},
{
"id": 180,
"name": "新餘"
},
{
"id": 181,
"name": "鷹潭"
},
{
"id": 182,
"name": "贛州"
},
{
"id": 183,
"name": "吉安"
},
{
"id": 184,
"name": "宜春"
},
{
"id": 185,
"name": "撫州"
},
{
"id": 186,
"name": "上饒"
}
]
},
{
"id": 23,
"name": "廣東",
"cityBeanList": [
{
"id": 249,
"name": "廣州"
},
{
"id": 250,
"name": "韶關"
},
{
"id": 251,
"name": "深圳"
},
{
"id": 252,
"name": "珠海"
},
{
"id": 253,
"name": "汕頭"
},
{
"id": 254,
"name": "佛山"
},
{
"id": 255,
"name": "江門"
},
{
"id": 256,
"name": "湛江"
},
{
"id": 257,
"name": "茂名"
},
{
"id": 258,
"name": "肇慶"
},
{
"id": 259,
"name": "惠州"
},
{
"id": 260,
"name": "梅州"
},
{
"id": 261,
"name": "汕尾"
},
{
"id": 262,
"name": "河源"
},
{
"id": 263,
"name": "陽江"
},
{
"id": 264,
"name": "清遠"
},
{
"id": 265,
"name": "東莞"
},
{
"id": 266,
"name": "中山"
},
{
"id": 267,
"name": "潮州"
},
{
"id": 268,
"name": "揭陽"
},
{
"id": 269,
"name": "雲浮"
}
]
},
{
"id": 24,
"name": "遼寧",
"cityBeanList": [
{
"id": 71,
"name": "瀋陽"
},
{
"id": 72,
"name": "大連"
},
{
"id": 73,
"name": "鞍山"
},
{
"id": 74,
"name": "撫順"
},
{
"id": 75,
"name": "本溪"
},
{
"id": 76,
"name": "丹東"
},
{
"id": 77,
"name": "錦州"
},
{
"id": 78,
"name": "營口"
},
{
"id": 79,
"name": "阜新"
},
{
"id": 80,
"name": "遼陽"
},
{
"id": 81,
"name": "盤錦"
},
{
"id": 82,
"name": "鐵嶺"
},
{
"id": 83,
"name": "朝陽"
},
{
"id": 84,
"name": "葫蘆島"
}
]
},
{
"id": 25,
"name": "吉林",
"cityBeanList": [
{
"id": 85,
"name": "長春"
},
{
"id": 86,
"name": "吉林"
},
{
"id": 87,
"name": "四平"
},
{
"id": 88,
"name": "遼源"
},
{
"id": 89,
"name": "通化"
},
{
"id": 90,
"name": "白山"
},
{
"id": 91,
"name": "松原"
},
{
"id": 92,
"name": "白城"
},
{
"id": 93,
"name": "延邊"
}
]
},
{
"id": 26,
"name": "內蒙古",
"cityBeanList": [
{
"id": 59,
"name": "呼和浩特"
},
{
"id": 60,
"name": "包頭"
},
{
"id": 61,
"name": "烏海"
},
{
"id": 62,
"name": "赤峰"
},
{
"id": 63,
"name": "通遼"
},
{
"id": 64,
"name": "鄂爾多斯"
},
{
"id": 65,
"name": "呼倫貝爾"
},
{
"id": 66,
"name": "巴彥淖爾"
},
{
"id": 67,
"name": "烏蘭察布"
},
{
"id": 68,
"name": "興安盟"
},
{
"id": 69,
"name": "錫林郭勒盟"
},
{
"id": 70,
"name": "阿拉善盟"
}
]
},
{
"id": 27,
"name": "廣西",
"cityBeanList": [
{
"id": 270,
"name": "南寧"
},
{
"id": 271,
"name": "柳州"
},
{
"id": 272,
"name": "桂林"
},
{
"id": 273,
"name": "梧州"
},
{
"id": 274,
"name": "北海"
},
{
"id": 275,
"name": "防城港"
},
{
"id": 276,
"name": "欽州"
},
{
"id": 277,
"name": "貴港"
},
{
"id": 278,
"name": "玉林"
},
{
"id": 279,
"name": "百色"
},
{
"id": 280,
"name": "賀州"
},
{
"id": 281,
"name": "河池"
},
{
"id": 282,
"name": "來賓"
},
{
"id": 283,
"name": "崇左"
}
]
},
{
"id": 28,
"name": "新疆",
"cityBeanList": [
{
"id": 417,
"name": "烏魯木齊"
},
{
"id": 418,
"name": "克拉瑪依"
},
{
"id": 419,
"name": "吐魯番"
},
{
"id": 420,
"name": "哈密"
},
{
"id": 421,
"name": "昌吉"
},
{
"id": 422,
"name": "博爾塔拉"
},
{
"id": 423,
"name": "巴音郭楞"
},
{
"id": 424,
"name": "阿克蘇"
},
{
"id": 425,
"name": "克孜勒蘇柯爾克孜"
},
{
"id": 426,
"name": "喀什地區"
},
{
"id": 427,
"name": "和田地區"
},
{
"id": 428,
"name": "伊犁"
},
{
"id": 429,
"name": "塔城"
},
{
"id": 430,
"name": "阿勒泰"
}
]
},
{
"id": 29,
"name": "西藏",
"cityBeanList": [
{
"id": 373,
"name": "拉薩"
},
{
"id": 374,
"name": "昌都"
},
{
"id": 375,
"name": "山南"
},
{
"id": 376,
"name": "日喀則"
},
{
"id": 377,
"name": "那曲"
},
{
"id": 378,
"name": "阿里"
},
{
"id": 379,
"name": "林芝"
}
]
},
{
"id": 30,
"name": "寧夏",
"cityBeanList": [
{
"id": 412,
"name": "銀川"
},
{
"id": 413,
"name": "石嘴山"
},
{
"id": 414,
"name": "吳忠"
},
{
"id": 415,
"name": "固原"
},
{
"id": 416,
"name": "中衛"
}
]
},
{
"id": 31,
"name": "海南",
"cityBeanList": [
{
"id": 284,
"name": "海口"
},
{
"id": 285,
"name": "三亞"
}
]
},
{
"id": 32,
"name": "臺灣",
"cityBeanList": [
{
"id": 432,
"name": "臺灣"
}
]
},
{
"id": 33,
"name": "澳門",
"cityBeanList": [
{
"id": 433,
"name": "澳門"
}
]
},
{
"id": 34,
"name": "香港",
"cityBeanList": [
{
"id": 434,
"name": "香港"
}
]
}
]