2017-09-13 6 views
0

データを取得するにはAPIを呼び出す必要があります。ここに現在の実装があります。Httpのヘルプが必要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で、そのオブジェクトのプロパティをカウントする(あなたは、各等のためのようなものでLIBSやフレームワークを使用している場合、これは非常に簡単です)

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); 

を使用することができる配列を与える:関係なく、キー値の、オブジェクトの値を取得し、これを行うには キーで、あなたは、古いブラウザでは、一部のpolyfillingせずに作業する必要がある場合は、

Object.keys(data).forEach(function(key){console.log(key, data[key])}); 

を使用for-in -loop、を参照してください使用することができます

jQuerys getJSON here

関連する問題