如何在javascript中计算json对象

时间:2015-10-13 07:46:44

标签: javascript json ajax

我如何计算我的请求的对象?

我正在使用ajax并向此url 04:15 - 05:00请求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);
});

这是我的回复

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

谢谢:)

3 个答案:

答案 0 :(得分:1)

你可以试试这个:

Object.keys(jsonArray).length;

获取JSON对象中的项目数。

另请参阅Object.keys

  

Object.keys()返回一个元素为字符串的数组   对应于直接在对象上找到的可枚举属性。   属性的顺序与循环给出的顺序相同   手动对象的属性。

答案 1 :(得分:0)

你可以

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

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

答案 2 :(得分: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 ?');  
  });