簡體   English   中英

javascript-JSON文件僅在鍵存在時使用值

[英]javascript - JSON file use a value only if key exists

我正在從一個過站調用中檢索OSM Json,以獲得必須保存在數據庫中的功能列表。 由於數據彼此之間非常不同(例如,其中一些確實有一個稱為“ addr:city”的標記,而有些則沒有),我想檢查一個鍵是否存在,僅在這種情況下保存相應的值。 我只找到了這個問題,但不是我的情況,因為我不知道一個元素將擁有哪些鍵,哪些元素沒有先驗鍵,並且由於我要處理大量數據,所以我真的無法檢查元素一個接一個,當然我不能為每種情況編寫一個IF。
有辦法解決嗎? 在循環遍歷元素時,我在考慮“如果鍵具有空值,請忽略它”,但是我不知道是否存在類似的東西

編輯:

這是我的查詢:

https://overpass-api.de/api/interpreter?data=[out:json][timeout:25];(node[~%22^(tourism|historic)$%22~%22.%22](44.12419,%2012.21259,%2044.15727,%2012.27696);way[~%22^(tourism|historic)$%22~%22.%22](44.12419,%2012.21259,%2044.15727,%2012.27696););out%20center; 

這是我用來將數據保存在firebase上的代碼:

results.elements.forEach(e=>{


  var ref = firebase.database().ref('/point_of_interest/');
  var key = firebase.database().ref().child('point_of_interest').push().key;   
  var updates = {};
  var data = {
    città: e.tags["addr:city"],
    tipologia: e.tags["amenity"],
    indirizzo: e.tags["addr:street"],
    nome: e.tags["name"],
    lat: e.lat,
    lon: e.lon

  }      
  updates['/point_of_interest/'+key] = data;      
  firebase.database().ref().update(updates);      
}) 

“結果”是json格式的響應

您可以使用類似這樣的方法:

    var attrs = ["addr:city", "amenity", "addr:street", "name"];
    var labels = ["città", "tipologia", "indirizzo", "nome"]
    var data = { };

    attrs.forEach((a, i) => {
       if (e.tags[a]) { data[labels[i]] = e.tags[a]; }
    });

如果您可以從某個地方查詢屬性名稱和標簽,甚至可以使它更具動態性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM