需要帮助如何使用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 

我需要计数在响应对象的数量。我该怎么办?

+0

response.length? –

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