如何遍历 JSON 对象以适合 JavaScript 数组

How to loop through a JSON object to fit inside a javascript array?

本文关键字:JavaScript 数组 对象 JSON 何遍历 遍历      更新时间:2023-09-26

我正在尝试以适合GoMap声明的方式转换带有谷歌地图标记(使用CMS中的数据生成的)的JSON对象。我正在尝试从我的 CMS 中获取多个标记以将它们放置在地图上。

我将尝试在下面详细解释它:

我遍历标记并创建一个编码为 json 的数组:

echo "<script>var googlePlaces = " . json_encode($googlePlaces) . ";</script>"; 

然后我得到以下对象:

[Object { title="Est. Avenida de Mayo",  lat="-34.60844234174374",  lon="-58.37414860725403"}, Object { title="Café Tortoni",  lat="-34.60871608361115",  lon="-58.378823697566986"}]

我所需要的只是把它放在这里:

$(document).ready(function() {
    $("#map").goMap({ 
        latitude: config.location_lat, 
        longitude: config.location_lon, 
        zoom: 15,
        mapTypeControl: false, 
        maptype: 'ROADMAP',
        navigationControl: true, 
        navigationControlOptions: { 
            position: 'TOP_LEFT', 
            style: 'SMALL' 
        },
       markers: [{  
                    // Multiple markers here!
            latitude: XXXXXX, 
            longitude: XXXXXXX, 
            html: { 
                content: 'XXXXXXX'
            },
        }]
    });     
} 
}); // end

我有点被困在这里,我知道我需要以某种方式遍历 JSON 对象并将其放置在 GoMap 脚本中的标记属性中。这是对的吗?谁能指出我正确的方向?

尝试这样的事情来迭代您的 JSON 对象元素并将其推送到数组中。

 var markersArray = new Array();
 $.each(googlePlaces, function(i, itemPlace) {
     var obj = { 
                 latitude: itemPlace.lat, 
                 longitude: itemPlace.lon,
                 html: { content: itemPlace.title }
               };        
     markesArray.push(obj);
 });​

之后在gomap代码中使用标记数组,如下所示

$("#map").goMap({ 
   // your existing stuff
   markers: markersArray 
});     

祝你好运!!