我有一个json文件,如:{ total: 86, success: true, "rows": [ {"a1_id":"3231VB8",
等等。
我的问题是,当使用jquery从这个json文件中输入谷歌地图中的标记时,在json文件开头用<total: 86, success: true, "rows":>
替换<"markers":>
之前,它不会这样做。
确实没问题,但是当我这样做时,来自同一个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 } );
答案 0 :(得分:0)
所以基本上你要问如何重命名&#34;行&#34;来自JSON的属性是&#34;标记&#34;,因为&#34;标记&#34;是JS / jQuery代码的特定部分使用的是什么?并且您需要将更改放在该代码中,以便现有的JSON可以像其他进程一样使用吗?
如果是这样,为什么不在JS / jQuery代码中进行以下小改动以引用&#34;行&#34;属性而不是&#34;标记&#34;:
...
$.each( data.rows, function(i, m) {
...
唯一的变化是传递给$.each()
的第一个参数。 &#34;总计&#34;和&#34;成功&#34;实际上您需要删除JSON中的参数,因为它们会被您所显示的代码(在我的更改之前和之后)忽略。
如果由于某种原因你需要实际修改data
对象,我假设它是通过解析JSON创建的,你可以尝试这样的事情:
data = { "markers" : data.rows };
也就是说,创建一个具有单个属性的新对象&#34; markers&#34;,它引用&#34;行&#34;来自原始对象的数组,然后重新分配data
变量以指向新对象。然后只需按原样使用$.each()
。
答案 1 :(得分:0)
使用JSONLint验证我的JSON输出后,我收到了在字符串“total”和“success”周围添加引号的建议。所以我做了,JSON输出正确验证。
这导致ExtJs和Google Maps接受我的JSON文件。
要记住:如果一个应用程序正在接受您的JSON(ExtJs),那么也不会说另一个应用程序也是如此。 (谷歌地图)。