2015-10-13 79 views
2

如何計算我的請求的對象?如何計算JavaScript中的json對象

我正在使用ajax並向此URL請求json數據pbxApi+"/conference/participants/"+circle+"/"+data.conference+"/"+data.uniqueid+'?jsonp=response';我想計算響應的對象。

這是我的代碼

var uri = pbxApi+"/conference/participants/"+circle+"/"+data.conference+"/"+data.uniqueid+'?jsonp=response'; 
     getJsonData(uri, function(res){ 
      console.log(res.length); 
}); 

這是我functiion:

var getJsonData = function(uri,callback){ 
    $.ajax({ 
     type: "GET", 
     dataType: "jsonp", 
     url: uri, 
     jsonpCallback: 'response', 
     cache: false, 
     contentType: "application/json", 
     success: function(json){ 
     callback(json); 
     } 
    }); 
    } 

這是我的迴應

response({"_id":"561713a78693609968e3bbdd","event":"ConfbridgeJoin","channel":"SIP/192.168.236.15-00000024","uniqueid":"1444352918.94","conference":"0090000293","calleridnum":"0090000288","calleridname":"0090000288","__v":0,"status":false,"sipSetting":{"accountcode":"0302130000","accountcode_naisen":"201","extentype":0,"extenrealname":"UID1","name":"0090000288","secret":"Myojyo42_f","username":"0090000288","context":"innercall_xdigit","gid":101,"cid":"0090000018"}}) 

謝謝:)

+1

你所說的 「算對象」 呢? –

+0

在響應中,如果沒有'json'的'結構',回答非常困難 – Anonymous0day

+0

我加了我的回覆@ Anonymous0day – uno

回答

1

你可以試試這個:

Object.keys(jsonArray).length; 

讓你的JSON對象的項目數。

另外參閱Object.keys

Object.keys()返回一個數組,其元素是對應於枚舉的屬性的字符串 直接發現在對象。 屬性的排序與手動循環 對象的屬性給出的排序相同。

0

您可以

success: function(json){ 
    console.log('Object keys length: ' + Object.keys(json).length) 
    callback(json); 
} 

例如{a:1, b:2, c:'Batman'}3作爲一個答案

0

一個解決方案

var uri = pbxApi+"/conference/participants/"+circle+"/"+data.conference+"/"+data.uniqueid+'?jsonp=response'; 

var getJsonData = function(uri,callback){ 
    return $.ajax({ // <----- note the return ! 
     type: "GET", 
     dataType: "jsonp", 
     url: uri, 
     jsonpCallback: 'response', 
     cache: false, 
     contentType: "application/json", 
     success: function(json){ 
     if(callback) callback(json); 
     } 
    }); 
    } 

getJsonData(uri, function(res){ 
    console.log(Objec.keys(res).length)); 
}); 

// with the return you will be able to do : 
getJsonData(uri) 
    .done(function(res){ 
    console.log(Objec.keys(res).length)); 
    }) 
    .error(function(err){ 
    console.log('an error ?? what is it possible ?'); 
    }); 
+0

'return'這麼重要?你甚至沒有使用它。 –

+0

要沒有回調鏈,我會更新我的答案,以瞭解 – Anonymous0day

+0

雖然這似乎沒有任何關係。 –