Javascript 如何将Json数据绘制到数组中?
下面是我的JSON格式Javascript 如何将Json数据绘制到数组中?,javascript,jquery,arrays,json,google-maps,Javascript,Jquery,Arrays,Json,Google Maps,下面是我的JSON格式 { "Data": { "-template": "Parallax", "Explore": { "IslandLife": { "TourismLocation": [ { "Title": "Langkawi", "Latitude": "6.350000", "Longitude": "99.800000", "YouTubePlaylistID": "UUnTJRksbHP4
{
"Data": {
"-template": "Parallax",
"Explore": {
"IslandLife": {
"TourismLocation": [
{
"Title": "Langkawi",
"Latitude": "6.350000",
"Longitude": "99.800000",
"YouTubePlaylistID": "UUnTJRksbHP4O8JSz00_XRQA",
"VideosList": {
"YouTubeVideoID": [
"7HlMpaSspNs",
"tzeRnbd77HU",
"VkIAbDIVJCA",
"ksJ6kwTe9wM"
]
}
},
{
"Title": "Rawa Island",
"Latitude": "2.520278",
"Longitude": "103.975833",
"YouTubePlaylistID": "UUnTJRksbHP4O8JSz00_XRQA",
"VideosList": { "YouTubeVideoID": "Kx0dUWaALKo" }
},
{
"Title": "Perhentian Island",
"Latitude": "5.903788",
"Longitude": "102.753737",
"YouTubePlaylistID": "UUnTJRksbHP4O8JSz00_XRQA",
"VideosList": {
"YouTubeVideoID": [
"ZpcdGk5Ee0w",
"TQTDOGpflZY"
]
}
},
{
"Title": "Sabah Marine Park",
"Latitude": "4.623326",
"Longitude": "118.719800",
"YouTubePlaylistID": "UUnTJRksbHP4O8JSz00_XRQA",
"VideosList": { "YouTubeVideoID": "VCDTEKOqpKg" }
}
]
}
}
}
}
使用下面的函数,我从Json中检索数据
$.getJSON('json/explore.json', function(data) {
$.each(data, function(key, val) {
for (var i = 0; i < val.Explore.IslandLife.TourismLocation.length; i++) {
console.log(val.Explore.IslandLife.TourismLocation[i].Title);
console.log(val.Explore.IslandLife.TourismLocation[i].Description);
console.log(val.Explore.IslandLife.TourismLocation[i].Latitude);
console.log(val.Explore.IslandLife.TourismLocation[i].Longitude);
console.log(val.Explore.IslandLife.TourismLocation[i].YouTubePlaylistID);
}
});
});
Thanx提前:)也许可以用这个
$.each($.parseJSON(data), function(i,item)
{
// item.Explore etc etc
});
获取数据,然后迭代
TourismLocation
对象,将值添加到数组中,然后将该数组推送到包含该值的数组中:
$.getJSON('json/explore.json', function(data) {
var locations = [];
$.each(data.Data.Explore.IslandLife.TourismLocation, function(key, val) {
var loc = [val.Title, val.Latitude, val.Longitude];
locations.push(loc);
});
// use "locations" here, async and all
});
还要注意,ajax是异步的,因此不能在回调函数之外使用新创建的数组,因为它还不可用
也不确定数组中的第四项是什么,但如果它只是一个反向迭代的数字,也可以添加:
$.getJSON('json/explore.json', function(data) {
var locations = [],
num = data.Data.Explore.IslandLife.TourismLocation.length;
$.each(data.Data.Explore.IslandLife.TourismLocation, function(key, val) {
var loc = [val.Title, val.Latitude, val.Longitude, num--];
locations.push(loc);
});
// use "locations" here, async and all
});
$.each($.parseJSON(data), function(i,item)
{
// item.Explore etc etc
});
$.getJSON('json/explore.json', function(data) {
var locations = [];
$.each(data.Data.Explore.IslandLife.TourismLocation, function(key, val) {
var loc = [val.Title, val.Latitude, val.Longitude];
locations.push(loc);
});
// use "locations" here, async and all
});
$.getJSON('json/explore.json', function(data) {
var locations = [],
num = data.Data.Explore.IslandLife.TourismLocation.length;
$.each(data.Data.Explore.IslandLife.TourismLocation, function(key, val) {
var loc = [val.Title, val.Latitude, val.Longitude, num--];
locations.push(loc);
});
// use "locations" here, async and all
});