本文仅供参考。
本文主要针对初学者使用API数据不知道如何调用,那么用JQ来读取和返回是醉为简单的。本文主要以天行数据和聚合数据为例子,因为他们都提供了免费的API接口。大家可以自己去申请。
API数据大多数返回的数据类型为json,那么我们先看两组返回的数据。
1:天行数据的返回数据。拿抖音热点榜举例:
{
"code": 200,
"msg": "success",
"newslist": [
{ "hotindex": 11552765, "label": 5, "word": "郭聪明暂停唱歌接受治疗"
},
{ "hotindex": 8354588, "label": 0, "word": "5年5诉离婚男方将提上诉"
},
{ "hotindex": 6483092, "label": 1, "word": "国足醉新身价出炉"
}
]
}
可以看到我们需要的数据在:newslist这个数组中,然后数据中又包括了一个或者多个对象。
2:再看看聚合数据的返回。举个例子为身份证查询。
{
"resultcode":"200",
"reason":"成功的返回",
"result":{
"area":"湖北省武汉市黄陂区",
"sex":"男",
"birthday":"1992年01月20日",
"verify":""
},
"error_code":0}
可以看到我们需要的数据是在:result中,他包括了一个对象。没有数组。
一个是数组,一个是对象。 这是他们醉大的区别。
接下来我们写JS请求和返回。
$.ajax({
url:'http://apis.juhe.cn/idcard/index',
type:'get',
dataType:'jsonp', //注意聚合数据这里要用JSONP才能正常返回
data:{ //传递参数
cardno:'420116199201203716', //传递参数,可以通过前端获取,方法如下
dtype:'json',
key:'76ca6507bea4自己申请的KEY'
},
success:function(info){
console.log(info);
$("#result").append(info.result.sex+info.result.area+info.result.birthday); // 这是聚合数据直接输出的
},
error:function(error,Msgerror){
console.log(Msgerror);
alert("错误");
}
})
假如是天行数据的数组,要如何输出?
$("#TJ").click(function() { //数据提交
var url="http://api.tianapi.com/txapi/star/index";
var key="49fed76b6a";
var urlb=$("input#test").val(); //获取到INPUT输入值
$.ajax({
url: url,
type: 'POST',
dataType: 'json', //这里用JSON,和上面聚合数据JSONP不同。
data:{ //传递参数
astro:urlb,
key:key,
},
//成功后返回数据
success:function(date){
var i=0;
$.each(date.newslist, function(idx,obj) {
$("#result").append("<div class='dy'>"+"<div class='title'>"+obj.type+"</div>"+"<div class='desc'>"+obj.content+"</div>"+"</div>");
});
},
error:function(error){
alert(error);
},
//成功后返回数据结束
});
});
})