ashx输出json

google地图APi升级到第三版,网站的google地图引用也需要重新做,之前用的还是第一版的,还能用着也是个奇迹了。

用ashx从数据库中获取城市名称及城市经纬度,所以页面通过ashx获取的是城市名及经纬度的对应信息,用JSON格式字符串输出,用StringBuilder一块块拼出来的JSON字符串,然后是

context.Response.ContentType = "text/plain";
context.Response.Write(outputStr.ToString());输出,

HTML页面用jQuery.ajax(url,success);获取,dataType不填,如果填'json',能获取到输出但是success无法执行,因为获取的数据格式实际上是字符串,不是json格式,所以并不算成功,而不填的话会根据返回类型匹配吧,大致是这么个意思。

在JS中想用data.citys[j].name这样的JSON格式方法的话需要用JS自带的eval函数,将字符串转为JSON。

一下为ajax代码

jQuery.ajax({ url: ajaxURL, success: function(json) {
       var data = eval_r("(" + json + ")");//_r新浪你妹 自动加的
        var latlngArr = new Array();
        var markerArr = new Array();
        var latlng;
        for (i = 0; i < data.citys.length; i++) {
            latlng = data.citys[i].latlng;
            latlngArr[i] = new google.maps.LatLng(latlng.split(',')[0], latlng.split(',')[1]);
        }

        var mapOptions = { zoom: 4, center: latlngArr[0], mapTypeId: google.maps.MapTypeId.ROADMAP };
        var googleMap = new google.maps.Map(document.getElementByIdx_x_x_x_x(mapDivId), mapOptions);

        var linePath = new google.maps.Polyline({ path: latlngArr, strokeColor: "#1b519f", strokeOpacity: 1.0, strokeWeight: 2 });
        linePath.setMap(googleMap);
        var image = '/template/skin/markerico.png';
        for (j = 0; j < data.citys.length; j++) {
            markerArr[j] = new google.maps.Marker({ position: latlngArr[j], map: googleMap, title: data.citys[j].name, icon: image });
        }

    }
    });

获取ajax数据,success回调函数中调用google map api创建地图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值