2017-09-13 54 views
0

我需要調用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? –

回答

0
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 
0

你可以使用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