如何在JavaScript中循环json格式数组变量 [英] How to loop json format array variable in javascript

查看:102
本文介绍了如何在JavaScript中循环json格式数组变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的代码,用于标记我在Google地图中从我的数据库中提取的所有地点。

  $ .ajax({
url:http://localhost/church_finder/index.php/MapController/ search_church,
类型:'POST',
data:{coordinates:coordinates}
成功:receiver
});

在这里,我使用从数据库中得到的结果调用接收函数。

 函数receiver(data,textStatus,XMLHttpRequest){

var json = JSON.parse(data);

var features = [
for(var i = 0; i< json.length; i ++){
var lat = json [0] [lat];
var lng = json [0] [lng];
{
position:new google.maps.LatLng(lat,lng),
},
}
];

features.forEach(function(feature){
var marker1 = new google.maps.Marker({
position:feature.position,
map:map
});
});

$ / code>

这是我从ajax获得的结果数据


[{lat:10.526800731337735,lng:76.20941162109375},
{lat:10.622100079463674,lng : 76.1424207687378},{ LAT: 10.604004340704408, LNG: 76.14100456237793},{ LAT: 10.608644375798574, LNG: 76.13735675811768},{ LAT: 10.624419968495433 , LNG: 76.13675594329834},{ LAT: 10.62436724394038, LNG: 76.13685250282288},{ LAT: 10.624377788852131, LNG: 76.13693833351135},{ LAT : 10.615815200680679, LNG: 76.1367130279541},{ LAT: 10.601726479547619, LNG: 76.13688468933105},{ LAT: 10.610500370131295, LNG: 76.13244295120239}, {lat:10.631991120088175,lng:76.13566160202026}]


但是当我在var特性I中使用forloop出现这样的错误Uncaught SyntaxError:Unexpected token for。

解决方案

这是您的方法


如何在Google地图中循环并标记所有此坐标

  var json = JSON.parse(data); 

var features = [
for(var i = 0; i< json.length; i ++){
var lat = json [0] [lat];
var lng = json [0] [lng];
{
position:new google.maps.LatLng(lat,lng),
},
}
];

features.forEach(function(feature){
var marker1 = new google.maps.Marker({
position:feature.position,
map:map
});
});





代码中有一些问题



您试图在括号 [] for-loop >

  var features = [
for(var i = 0; i< json.length; i ++){< b $ b var lat = json [0] [lat];
var lng = json [0] [lng];
{
position:new google.maps.LatLng(lat,lng),
},
}
];
$

您总是会在位置 0

  var lat = json [0] [lat]; 
var lng = json [0] [lng];

您有一个从未被分配给变量的表达式:

  {
position:new google.maps.LatLng(lat,lng),
},
^



查看此修正程式码片段



  var json = [{lat:10.526800731337735,lng:76.20941162109375},{lat:10.622100079463674,lng:76.1424207687378}, { LAT: 10.604004340704408, LNG: 76.14100456237793},{ LAT: 10.608644375798574, LNG: 76.13735675811768},{ LAT: 10.624419968495433, LNG: 76.13675594329834 },{ LAT : 10.62436724394038\" , LNG: 76.13685250282288},{ LAT: 10.624377788852131, LNG: 76.13693833351135},{ LAT: 10.615815200680679, LNG : 76.1367130279541 },{ LAT : 10.601726479547619\" , LNG: 76.13688468933105},{ LAT: 10.610500370131295, LNG: 76.13244295120239},{ LAT: 10.631991120088175\" , LNG: 76.13566160202026}]; 

var features = [];

for(var i = 0; i< json.length; i ++){
var lat = json [i] [lat];
var lng = json [i] [lng];

features.push({
position:new google.maps.LatLng(lat,lng),
});


features.forEach(function(feature){
var marker1 = new google.maps.Marker({
position:feature.position,
map:map
});
});



资源




This is my code, using for marking all places that I fetched from my database in google map.

 $.ajax({
        url:"http://localhost/church_finder/index.php/MapController/search_church",
                type:'POST',
                data:{coordinates:coordinates}
                 success: receiver               
               });

Here I call the function receiver with the result I got from the database.

function receiver(data, textStatus, XMLHttpRequest) {

var json = JSON.parse(data);

var features = [
            for( var i=0; i<json.length; i++) {
            var lat=json[0]["lat"];
            var lng=json[0]["lng"];
                {
                    position: new google.maps.LatLng(lat,lng),
                },
            }
            ];

     features.forEach(function(feature) {
                var marker1 = new google.maps.Marker({
                    position: feature.position,
                    map: map
                });
            });     
} 

This is the result data I getting from ajax

[{"lat":"10.526800731337735","lng":"76.20941162109375"}, {"lat":"10.622100079463674","lng":"76.1424207687378"},{"lat":"10.604004340704408","lng":"76.14100456237793"},{"lat":"10.608644375798574","lng":"76.13735675811768"},{"lat":"10.624419968495433","lng":"76.13675594329834"},{"lat":"10.62436724394038","lng":"76.13685250282288"},{"lat":"10.624377788852131","lng":"76.13693833351135"},{"lat":"10.615815200680679","lng":"76.1367130279541"},{"lat":"10.601726479547619","lng":"76.13688468933105"},{"lat":"10.610500370131295","lng":"76.13244295120239"},{"lat":"10.631991120088175","lng":"76.13566160202026"}]

but when am using forloop inside var feature I got error like this "Uncaught SyntaxError: Unexpected token for". How can i loop and mark all this coordinate in google map.

解决方案

This is your approach

var json = JSON.parse(data);

var features = [
    for( var i=0; i<json.length; i++) {
    var lat=json[0]["lat"];
    var lng=json[0]["lng"];
        {
            position: new google.maps.LatLng(lat,lng),
        },
    }
    ];

features.forEach(function(feature) {
        var marker1 = new google.maps.Marker({
            position: feature.position,
            map: map
        });
    });     
} 

There are some issues in your code

You're trying to execute a for-loop within both brackets []

var features = [  
    for( var i=0; i<json.length; i++) { <- Here
    var lat=json[0]["lat"];
    var lng=json[0]["lng"];
        {
            position: new google.maps.LatLng(lat,lng),
        },
    }
    ];
    ^

You're always itetaring with position 0

var lat=json[0]["lat"];
var lng=json[0]["lng"];
             ^

You have an expression that never was assigned to a variable:

{
    position: new google.maps.LatLng(lat,lng),
},
^

Look this code snippet with those fixes

var json = [{"lat":"10.526800731337735","lng":"76.20941162109375"}, {"lat":"10.622100079463674","lng":"76.1424207687378"},{"lat":"10.604004340704408","lng":"76.14100456237793"},{"lat":"10.608644375798574","lng":"76.13735675811768"},{"lat":"10.624419968495433","lng":"76.13675594329834"},{"lat":"10.62436724394038","lng":"76.13685250282288"},{"lat":"10.624377788852131","lng":"76.13693833351135"},{"lat":"10.615815200680679","lng":"76.1367130279541"},{"lat":"10.601726479547619","lng":"76.13688468933105"},{"lat":"10.610500370131295","lng":"76.13244295120239"},{"lat":"10.631991120088175","lng":"76.13566160202026"}];

var features = [];

for (var i = 0; i < json.length; i++) {
  var lat = json[i]["lat"];
  var lng = json[i]["lng"]; 

  features.push({
    position: new google.maps.LatLng(lat, lng),
  });
}

features.forEach(function(feature) {
  var marker1 = new google.maps.Marker({
    position: feature.position,
    map: map
  });
});

Resources

这篇关于如何在JavaScript中循环json格式数组变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆