猿问

从 api 响应中获取特定值

我向 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?


潇湘沐
浏览 303回答 2
2回答

慕村9548890

由于代理将来自第三方 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);

慕哥6287543

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);    }});
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答