为了账号安全,请及时绑定邮箱和手机立即绑定

从 api 响应中获取特定值

从 api 响应中获取特定值

潇湘沐 2021-12-12 09:55:34
我向 PHP 文件发送 Ajax 请求,该文件向 API 发送 CURL 请求,然后返回结果。PHP代码:$ch = curl_init();curl_setopt($ch, CURLOPT_URL, 'http://api.example.com?country=usa');curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$result = curl_exec($ch);curl_close($ch);$response = array('result' => $result);echo json_encode($response);Javascript/jQuery 代码:$.ajax({    url: "file.php",    type: "POST",    dataType : "json",    success: function(data){        console.log(typeof(data.result));        console.log(data.result);    }});结果的类型是string,结果如下所示:{"results":[{"code2":"093","code1":"NY","lng":-73.9395687,"name1":"New York","lat":42.8142432}]}如何从该结果中得到lng和lat?
查看完整描述

2 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

由于代理将来自第三方 API 的响应作为 JSON 编码字符串返回,您需要手动反序列化它。您可以使用JSON.parse(). 然后你可以results通过索引访问数组中的对象。试试这个:


var data = {

  result: '{"results":[{"code2":"093","code1":"NY","lng":-73.9395687,"name1":"New York","lat":42.8142432}]}'

}


// inside your AJAX callback:

var obj = JSON.parse(data.result);

var lat = obj.results[0].lat;

var lng = obj.results[0].lng;


console.log(lat);

console.log(lng);


查看完整回答
反对 回复 2021-12-12
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

var data = {"results":[{"code2":"093","code1":"NY","lng":-73.9395687,"name1":"New York","lat":42.8142432}]}

console.log(data.results[0].lat);

console.log(data.results[0].lng);


data.results是数组,因此用于[0]获取数组的第一个元素:


data.result[0]

然后获取第一个元素的内容:


data.result[0].lat

阿贾克斯:


$.ajax({

    url: "file.php",

    type: "POST",

    dataType : "json",

    success: function(data){

        console.log(data.result[0].lat);

        console.log(data.result[0].lng);

    }

});


查看完整回答
反对 回复 2021-12-12
  • 2 回答
  • 0 关注
  • 291 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号