我正在使用nodejs,并且试图访问一个json键,该键包含一个双点:
"elements": [
{
"type": "node",
"id": 122509567,
"lat": 50.9772739,
"lon": 8.0544817,
"tags": {
"addr:city": "Hilchenbach",
"addr:country": "DE",
"addr:housenumber": "6",
"addr:postcode": "57271",
"addr:street": "Bernhard-Weiss-Platz",
"amenity": "cinema",
"name": "Viktoria-Kino Dahlbruch",
"start_date": "1952-05-01",
"toilets:wheelchair": "yes",
"wheelchair": "yes"
}
},
{
"type": "node",
"id": 269951105,
"lat": 50.8768216,
"lon": 8.0214439,
"tags": {
"addr:city": "Siegen",
"addr:country": "DE",
"addr:housenumber": "31",
"addr:postcode": "57072",
"addr:street": "Sandstraße",
"amenity": "cinema",
"level": "2",
"name": "Cinestar",
"wheelchair": "limited"
}
},
我当前的函数如下所示:
async function createCustomCinemaJson (json) {
try {
const cinemas = {};
for (let i = 0; i < json.elements.length; i ++) {
if(json.elements[i].lat | json.elements[i].tags.addr & json.elements[i].tags.name) {
console.log(json.elements[i]);
} else {
console.log('No Way')
}
//cinemas.push(genres[k].name)
}
return json
} catch (e) {
console.error(e);
}
}
目前访问“ json.elements [i] .lat”或“ json.elements [i] .tags.name”没有问题,但是我如何才能访问“ addr:housenumber”或“ addr:city”?
只需使用括号符号和字符串作为键名即可访问此类值。您可以通过访问的任何对象值object["keyname"]
参见下面的例子
var json = JSON.parse(document.getElementById('json').value);
var city = json.elements[0].tags['addr:city'];
console.log(city);
// If you need to iterate the keys because you don't know the name
// you can use for( keyname in object )
var tags = json.elements[0].tags, name;
for(name in tags) {
if(tags.hasOwnProperty(name)) {
console.log(name, '=', tags[name]);
}
}
<textarea id="json">
{
"elements": [
{
"tags": {
"addr:city": "Hilchenbach",
"addr:country": "DE",
"addr:housenumber": "6",
"addr:postcode": "57271",
"addr:street": "Bernhard-Weiss-Platz"
}
}
]
}
</textarea>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句