【发布时间】:2015-05-26 13:58:33
【问题描述】:
我有 JSON 数据:
"geometry":{"type":"Point","coordinates":[95.9174,3.8394,59]},"id":"us10002b0v"
我需要提取coordinates 中以逗号分隔的每个值。在 PHP 中我会做extract(",",$geometry[coordinates]);。 JavaScript中是否有可能这样做?
从这里获取 Json:http://earthquake.usgs.gov/earthquakes/feed/geojsonp/2.5/week
这是我的代码:
google.maps.event.addDomListener(window, 'load', function() {
map = new google.maps.Map(document.getElementById('map-canvas'), {
center: { lat: 7.8, lng: 98.3},
zoom: 4,
styles: mapStyle
});
map.data.setStyle(styleFeature);
infowindow = new google.maps.InfoWindow({
content: '<div class = "corp" style="width: 260px; height: 200px">' + '</div>'
})
//InfoWindow
var infowindow = new google.maps.InfoWindow();
google.maps.event.addListener(map,'click',function() {
infowindow.close();
});
map.data.addListener('click', function(event) {
var place = event.feature.getProperty('place');
var mag = event.feature.getProperty('mag');
var depth = event.feature.getProperty('geometry');//I need the depth from this line which is arrayed
var link = event.feature.getProperty('url');
var jsonTime = event.feature.getProperty('time');
var humanTime = new Date('jsonTime');
infowindow.setContent('<div><h3>'+place+'</h3><p>Mag: '+mag+'<br />Depth '+depth+'<br />Time : '+humanTime+'<br /><a href="'+link+'" target="_blank">More</a></p></div>');
infowindow.setPosition(event.feature.getGeometry().get());
infowindow.setOptions({pixelOffset: new google.maps.Size(0,-30)});
infowindow.open(map);
});
【问题讨论】:
-
如果你解析json,那将变成一个普通的javascript数组,不需要直接处理json字符串的逗号。
-
它只是一个数组。
data['geometry']['coordinates'][1] -> 3.83... -
JSON.parse。将其转换为对象,然后就可以访问数组coordinates -
您发布的不是 JSON,它周围缺少括号
标签: javascript arrays json extract