高德行政區域查詢數據從新組裝爲ArrayList並設置父級id

以下組裝數據能夠直接將轉換後的json保存到數據庫;若是有更新,直接從新請求一次就能夠!javascript

api查詢文檔

文檔地址:https://lbs.amap.com/api/webservice/guide/api/districtjava

接口地址

https://restapi.amap.com/v3/config/district?key=您的Web服務Key&keywords=100000&subdistrict=3&extensions=baseios

組裝前數據

組裝前數據

組裝後數據

組裝後數據

組裝代碼

/** * 從新組裝數據 */ 
function assemblyData (targetArray, data, parent){
  data.forEach((city, index) => {
    let temp = JSON.parse(JSON.stringify(city));
    // 若是temp 中存在 districts 刪除 temp.districts
    if (temp.hasOwnProperty("districts")) delete temp.districts;
    temp.parent = parent
    targetArray.push(temp);
    // 若是citycode是一個數組 且長度爲 0 轉換爲空字符串
    if(Object.prototype.toString.call(temp.citycode) === "[object Array]" && temp.citycode.length === 0) temp.citycode = "";
    // 若是city 中存在 districts 繼續遍歷
    if(city.hasOwnProperty("districts")) assemblyData(targetArray, city.districts, city.adcode);
  })
}

axios.get("https://restapi.amap.com/v3/config/district?key=8d8109dec1b41de638b9e04bd21bc2fa&keywords=100000&subdistrict=3&extensions=base")
.then((result) => {
  let data = result.data.districts,
    resultContet = [];
    assemblyData(resultContet, data, "country");
    console.log(resultContent)
  }).catch((err) => {
  throw new Error(err)
});
複製代碼
相關文章
相關標籤/搜索