当前位置: 首页 > 知识库问答 >
问题:

javascript-JSON文件仅在键存在时使用值

寿和通
2023-03-14

我正在从一个overpass调用中检索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);      
}) 

“results”是jsonhtml" target="_blank">格式的响应

共有1个答案

舒嘉德
2023-03-14

你可以用这样的东西:

    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]; }
    });

如果可以从某处查询属性名称和标签,甚至可以使其更具动态性。

 类似资料:
  • 我将这些行添加到application.properties: 如何仅在server.ssl.key存储文件存在时使用HTTPS?否则,我想使用HTTP。

  • 问题内容: 首先,我是Javascript领域的新手。我有一个JSON文件,例如: 我一直在做很多关于如何将此文件重新带回脚本中的研究,只是找到了将字符串编码为JSON文件的方法。基本上,我想通过javascript读取此文件,例如…(我知道这不是您编码的方式) 有人可以给我明确的指示,说明如何执行此操作。记住,我是一个新手,需要具体说明,因为我不符合javascript行话。 问题答案: 首先,

  • 问题内容: 假设我们有一个类似以下的JSON结构(通常在Firebase的实时数据库中使用): 使用我想将其转换为3个元素的数组: 该 ID 属性对应于JSON对象的根弦,例如:。 解决方法: 我已经尝试了几种方法,但是在不需要辅助实体(或使用可选对象)的情况下无法获得id属性: 使用不像其他情况那么简单,因为由于密钥未知,因此无法使用。 是不适合于这些类型的案件? 问题答案: 基础实体: 解决方

  • 问题内容: 我的JavaScript出现问题。这似乎很奇怪。这是怎么回事。我有一个表单,在用户提交表单后,它将调用一个函数(onsubmit事件)以验证提交的数据,如果出现问题,或者如果用户名/电子邮件已经存在于数据库中(此部分使用ajax),它将返回false并使用DOM显示错误。这是下面的代码。奇怪的是,它仅在我使用空的alert(’‘)消息时才起作用,没有它,它将不起作用。谢谢您的帮助。 问

  • 问题内容: 是否可以在不使用PHP的情况下使用JavaScript/jQuery将文本保存到新的文本文件中?我要保存的文本可能包含我不想转义或使用urlencode的HTML实体,JS,HTML,CSS和PHP脚本! 如果只能使用PHP来实现,如何将文本传递给PHP而不进行编码? 问题答案: 您必须具有服务器端脚本来处理您的请求,这不能使用javascript完成。 要将没有URIencoding

  • 我们的备份系统创建。bak文件,我们可以使用它来恢复文件,如果我们遇到问题。如果不处理,这些文件将填满我们的存储空间,因此我找到了一个批处理文件,每天创建新的批处理文件后,我都可以运行该文件来删除旧的批处理文件。 文件-p“c:\xxx\yyy”-s-m*。bak/D-2/C“cmd/C del@path” 这工作正常,但我想创建一个安全网,以便无论出于何种原因,我们的备份系统出现故障并且没有创建