首页 新闻 会员 周边

下面的json格式怎么取值

0
[已关闭问题] 关闭于 2016-08-15 14:15

我写的是一个腾讯地图的距离计算跨域请求,返回的知不知道该怎么取,

 $.ajax({
                type:"get",
                URL: "http://apis.map.qq.com/ws/distance/v1/?mode=driving&from=39.983171,116.308479&to=39.996060,116.353455;39.949227,116.394310&key=E77BZ-YJ3WD-RZZ4C-PCANM-UKJL2-TOBD7",
                dataType : "jsonp",
                jsonp: "callbackparam",
                jsonpCallback: "jsonpCallback1",
                success: function (json) {
                    alert(json[result].elements.distance)
                }
                
            })

这是返回值

{
    "status": 0,
    "message": "query ok",
    "result": {
        "elements": [
            {
                "from": {
                    "lat": 39.983171,
                    "lng": 116.308479
                },
                "to": {
                    "lat": 39.996059,
                    "lng": 116.353454
                },
                "distance": 5354.7,
                "duration": 1467
            },
            {
                "from": {
                    "lat": 39.983171,
                    "lng": 116.308479
                },
                "to": {
                    "lat": 39.949226,
                    "lng": 116.394309
                },
                "distance": 10495.8,
                "duration": 2137
            }
        ]
    }
}

我要去里面的distance、duration值

问题补充:

这个请求没进去,意外的标记,这个格式写错了吗?

Mask1的主页 Mask1 | 初学一级 | 园豆:113
提问于:2016-05-09 09:51
< >
分享
所有回答(7)
0

nJson = eval(json);

alert(nJson.result.elements[0].distance);

与灵魂共宴 | 园豆:206 (菜鸟二级) | 2016-05-09 09:57
0

你需要定义一个functin jsonpCallback1(data){

}

// jsonp的返回值就在data里面。

Supper_litt | 园豆:827 (小虾三级) | 2016-05-09 11:09
0

jsonpCallback: "jsonpCallback1",这里定义的了一个response回调函数,

nike_ha | 园豆:177 (初学一级) | 2016-05-09 14:45
0

首先将这个json转化为一个对象,然后你就可以使用级联的写法了a.b.c这种方式

Hotsum | 园豆:197 (初学一级) | 2016-05-09 21:28
0

前端获取的是个json字符串 并不是个json对象  

首先$.parseJSON(json)转换成json对象 在级联获取

李永 | 园豆:219 (菜鸟二级) | 2016-05-09 22:54
0

我也不懂,我百度的。

在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式:

1.一种为使用eval()函数。

2. 使用Function对象来进行返回解析。

 

1.对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明,或者以字符串方式接受,那
么需要做一次对象化处理,方式不是太麻烦,就是将该字符串放于eval()中执行一次。这种方式也
适合以普通javascipt方式获取json对象,以下举例说明:

var dataObj=eval("("+data+")");//转换为json对象

为什么要 eval这里要添加 “("("+data+")");//”呢?

原因在于:eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成
一个语句块来处理,所以必须强制性的将它转换成一种表达式。

小刺猬001 | 园豆:660 (小虾三级) | 2016-05-10 14:12
0

你的ajax定义了返回的数据是json(而且你的写成了'jsonp'),返回的数据就是json数据不用解析,直接就可以按层级获取

HelloWorld!!!好难啊 | 园豆:198 (初学一级) | 2016-06-01 17:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册