需要帮助如何使用Javascript获取请求
问题描述:
我需要调用API来获取数据。这是当前的实施。需要帮助如何使用Javascript获取请求
return $.get(API_URL)
.then(function (response) {
return response.data;
}, function (response) {
return response.data;
});
而当我控制台日志值的响应。拥有这个。
console.log(response.data);
Output: [object Object]
当我检查网络 - >响应:
JSON
Data
0: Object
1: Object
Success: True
我需要计数在响应对象的数量。我该怎么办?
答
var responseData = JSON.parse(response.data.data)
这应该给你用实际数据
,然后一个对象来算只用香草JS该对象的属性(这是一个容易得多,如果你使用的库或框架与像每个等东西)
if (!Object.keys) {
Object.keys = function (obj) {
var keys = [],
k;
for (k in obj) {
if (Object.prototype.hasOwnProperty.call(obj, k)) {
keys.push(k);
}
}
return keys;
};
}
var numberOfProperties= Object.keys(obj).length;
或者在ES5兼容的环境中,你可以使用:
Object.keys(obj).length
答
你可以使用jQuerys getJSON或明确地告诉你想要接收内容类型application/json的东西(jQuery已经尝试猜测类型,所以这不应该是必须的)。 来获取对象的值,而不管其键值,这样做:
function getMyObjects(){
return $.getJSON(API_URL)
.then(function processMyData(data) {
// if data is an Object with only indices as keys:
return Object.values(data);
})
.catch(console.log);
}
这会给你一个数组,其中你可以使用length属性
getMyObjects()
.then(function(theArray){
console.log(theArray.length);
})
.catch(console.log);
如果你想要做的事有钥匙,你可以使用
Object.keys(data).forEach(function(key){console.log(key, data[key])});
如果你有旧的浏览器,并没有一些polyfilling工作,使用for-in
-loop,看到here
更多jQuerys的getJSON here
response.length? –