【发布时间】:2017-11-24 19:25:45
【问题描述】:
我正在从 overpass 调用中检索 OSM Json,以获取我必须保存在数据库中的功能列表。由于数据彼此非常不同(例如,其中一些确实有一个名为“addr:city”的标签,而其中一些没有),我想检查一个键是否存在,只有在这种情况下才保存对应的值。我只发现了this 问题,但这不是我的情况,因为我不知道一个元素将具有哪些键,哪些没有,并且由于我正在处理大量数据,我真的不能逐一检查元素,当然我不能为每种情况编写一个 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);
})
“results”是json格式的响应
【问题讨论】:
-
你能提供一些代码作为起点吗?
-
您的数据是什么样的?如果我们不知道该做什么,很难给出建议。
-
是的,抱歉,我已经修改了问题。
标签: javascript json