google地图中标记的json格式要求

google地图中标记的json格式要求,json,google-maps,jquery,Json,Google Maps,Jquery,我有一个json文件,比如:{total:86,success:true,rows:[{a1_id:3231VB8,等等 我的问题是,当使用jquery从这个json文件在GoogleMaps中输入标记时,在json文件的开头替换为之前,它不会这样做 好的,这样做没有问题,但是当我这样做时,来自同一url/文件的另一个json请求被破坏 问:我应该如何处理这个问题?有没有办法更改gmap代码来处理我的json文件或sh: function(data) { $.each( data.ma

我有一个json文件,比如:{total:86,success:true,rows:[{a1_id:3231VB8,等等

我的问题是,当使用jquery从这个json文件在GoogleMaps中输入标记时,在json文件的开头替换为之前,它不会这样做

好的,这样做没有问题,但是当我这样做时,来自同一url/文件的另一个json请求被破坏

问:我应该如何处理这个问题?有没有办法更改gmap代码来处理我的json文件或sh:

function(data) { 
    $.each( data.markers, function(i, m) {
            $('#map_canvas').gmap('addMarker', { 'position': new google.maps.LatLng(m.latitude, m.longitude), 'bounds':true } );

因此,本质上,您要问的是如何将JSON中的rows属性重命名为markers,因为markers是特定JS/jQuery代码段使用的东西?您需要在代码中进行更改,以便现有JSON可以像其他进程一样使用

如果是这样的话,为什么不在JS/jQuery代码中进行以下小更改,以引用rows属性而不是标记:

...
    $.each( data.rows, function(i, m) {
...

唯一的更改是传递给$.each的第一个参数。JSON中的total和success参数实际上不需要删除,因为您在更改之前和之后显示的代码会忽略它们

如果出于某种原因,您需要实际修改数据对象(我假设它是通过解析JSON创建的),您可以尝试以下操作:

    data = { "markers" : data.rows };
也就是说,创建一个具有单个属性markers的新对象,该属性引用原始对象中的rows数组,然后重新分配数据变量以指向新对象。然后只需按原样使用$.each。

在使用验证JSON输出后,我收到了在字符串total和success周围添加引号的建议s、 所以我这样做了,JSON输出正确验证

这导致ExtJs和googlemaps接受了我的JSON文件


请记住:如果一个应用程序接受您的JSON ExtJs,这并不意味着另一个也接受。Google Maps。

JSON中的total和success参数实际上不需要删除,因为您在更改之前和之后显示的代码会忽略它们;这是我认为的,但您的第一个和第二个解决方案只有在删除total和success参数时才对我有效。否则,没有显示gmap。它是白色的。我也对这种行为感到惊讶。有什么线索吗?可能是因为你的JSON文件实际上不是有效的JSON:属性名称必须加引号,所以你的total和success属性的名称周围应该加双引号。试试changin当然,这就是我昨天在评论中提到的。没有引号,它肯定是无效的JSON,但取决于它的解析方式,它可能会工作,例如,如果你的应用程序只是评估它,它可能仍然工作,因为它是有效的JavaScript语法,即使没有引号。