json jquery

时间:2015-06-11 10:24:44

标签: javascript jquery

我有一个json,因为jason数据中存在或不存在密钥。现在我想得到jquery中密钥存在的总数。

JSON:

jasonData = [{"test":"sa3"},{"test":"4s"},{"acf":"1s"},{"test":"6s"}];

我们如何在jquery中这样做,请帮助我

4 个答案:

答案 0 :(得分:6)

您可以使用filter

var jasonData = [{"test":"sa3"},{"test":"4s"},{"acf":"1s"},{"test":"6s"}];
var count = jasonData.filter(function(element) {
    return element.test;
}).length;
document.write(count);

或者,为了进一步跨浏览器兼容性,jQuery提供了类似的grep函数:

var jasonData = [{"test":"sa3"},{"test":"4s"},{"acf":"1s"},{"test":"6s"}];
var count = $.grep(jasonData, function(element) {
    return element.test;
}).length;
document.write(count);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 1 :(得分:1)

不需要jQuery

这将显示一个对象,显示每个键及其出现次数

&#13;
&#13;
var jasonData = [{"test":"sa3"},{"test":"4s"},{"acf":"1s"},{"test":"6s"}];
var keyCounts = {};

for (var i = 0; i < jasonData.length; i++) {
  var key = Object.keys(jasonData[i])[0];
  if (typeof(keyCounts[key]) == 'undefined') {
    keyCounts[key] = 1;
  } else {
    keyCounts[key] += 1;
  }
}

console.log(keyCounts);
&#13;
&#13;
&#13;

答案 2 :(得分:0)

这可以在核心JS中完成......

这是正在运行的代码。

var jasonData = [{"test":"sa3"},{"test":"4s"},{"acf":"1s"},{"test":"6s"}];
var sum=0;
jasonData.forEach(function(value,i){
  if(value.test){
    sum++;  
  }
});
console.log(sum);

答案 3 :(得分:0)

以非常简单的方式做到这一点::

var tempArr = [{"test":"sa3"},{"test":"4s"},{"acf":"1s"},{"test":"6s"}];
var tempObj;

for(var i=0;i<tempArr.length;i++){
    tempObj = tempArr[i];
    for(key in tempObj){
        alert("key : "+key +"value  : "+tempObj[key]);
    }
}

这样你就可以在任何json数组中获得任何键和值。现在根据您的要求调整此代码,例如增加或减少计数或您想要做的任何事情。

希望你有办法!!!