Javascript 从api响应获取特定值
我向PHP文件发送Ajax请求,PHP文件向API发送CURL请求,然后返回结果 PHP代码:Javascript 从api响应获取特定值,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我向PHP文件发送Ajax请求,PHP文件向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
$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
,结果如下所示:
{“结果”:[{“代码2”:“093”,“代码1”:“纽约”,“液化天然气”:-73.9395687,“名称1”:“纽约”,“拉丁美洲”:42.8142432}}
如何从该结果中获取
lng
和lat
?当代理将来自第三方API的响应作为JSON编码字符串返回时,您需要手动对其进行反序列化。您可以使用JSON.parse()
来实现这一点。然后可以按索引访问结果数组中的对象。试试这个:
var数据={
结果:“{”结果:“{”代码2:“093”,“代码1:“NY”,“lng:-73.9395687,”名称1:“纽约”,“拉丁美洲”:42.8142432}”
}
//在AJAX回调中:
var obj=JSON.parse(data.result);
var-lat=obj.results[0].lat;
var lng=obj.results[0].lng;
控制台日志(lat);
控制台日志(lng)代码>当代理将来自第三方API的响应作为JSON编码字符串返回时,您需要手动对其进行反序列化。您可以使用JSON.parse()
来实现这一点。然后可以按索引访问结果数组中的对象。试试这个:
var数据={
结果:“{”结果:“{”代码2:“093”,“代码1:“NY”,“lng:-73.9395687,”名称1:“纽约”,“拉丁美洲”:42.8142432}”
}
//在AJAX回调中:
var obj=JSON.parse(data.result);
var-lat=obj.results[0].lat;
var lng=obj.results[0].lng;
控制台日志(lat);
控制台日志(lng)代码>
var数据={“结果”:[{“代码2”:“093”,“代码1”:“纽约”,“液化天然气”:-73.9395687,“名称1”:“纽约”,“拉丁美洲”:42.8142432}]}
console.log(data.results[0].lat);
console.log(data.results[0].lng)代码>
var数据={“结果”:[{“代码2”:“093”,“代码1”:“纽约”,“液化天然气”:-73.9395687,“名称1”:“纽约”,“拉丁美洲”:42.8142432}]}
console.log(data.results[0].lat);
console.log(data.results[0].lng)代码>如果我想用PHP获得相同的值怎么办?我不是PHP开发人员,但我相信在访问相关属性之前,您需要使用来反序列化响应。如果我想用PHP获得相同的值怎么办?我不是PHP开发人员,但我相信您需要在访问相关属性之前使用来反序列化响应