Json对象数组长度

时间:2011-04-07 19:53:06

标签: jquery arrays json

我正在使用一些类似于:

的Json
{ 
   "Apps" : [
   { 
     "Name" : "app1",
     "id" : "1",
     "groups" : [ 
       { "id" : "1", "name" : "test group 1", "desc" : "this is a test group" },
       { "id" : "2", "name" : "test group 2", "desc" : "this is another test group" } 
     ]
   }
   ]
}

如果我在jquery中解析它以返回一个对象,我正在迭代这样的应用程序:

$.each(myJsonObject.Apps, function() { ... };

如何获得this.groups的长度?

我试过

  • this.groups.length
  • this.groups.length()
  • $(本).groups.length()

我找不到任何关于具有良好信息的多层json对象的文档。

任何链接或示例或建议都将不胜感激。

6 个答案:

答案 0 :(得分:19)

尝试:

$.each(myJsonObject.Apps, function(i, obj) { ... });

obj.Groups.length;

答案 1 :(得分:4)

Javascript区分大小写。将this.Groups.length更改为this.groups.length

此代码应该有效:

$.each(myJsonObject.Apps, function() { 
   alert(this.groups.length);
}); 

我在JSFiddle

上有一个工作示例

要避免此类问题,您应该使用一致的大小写。在Javascript中,通常使用camelCase。

答案 2 :(得分:2)

这很有效:

HTML:

<span id="result"></span>

JS:

var myJsonObject = 
{ 
   "Apps" : [
   { 
     "Name" : "app1",
     "id" : "1",
     "groups" : [ 
       { "id" : "1", "name" : "test group 1", "desc" : "this is a test group" },
       { "id" : "2", "name" : "test group 2", "desc" : "this is another test group" } 
     ]
   }
   ]
};

$.each(myJsonObject.Apps, function(i, el) { 
    $("#result").html(el.groups.length);
});

example

答案 3 :(得分:0)

看起来你的代码中只有一个简单的拼写错误。 JavaScript区分大小写,因此groups Groups相同。

如果您的JSON对象全部小写groups,就像您的示例一样,那么您只需要在迭代函数中使用this.groups.length

答案 4 :(得分:0)

试试这个:     function objectCount(obj){

objectcount = 0;
$.each(obj, function(index, item) {
    objectcount = objectcount + item.length;
});
return objectcount;
}
objectCount(obj);

其中obj是一个json对象,json数组作为子对象

答案 5 :(得分:0)

试试这个

import org.json.JSONObject;

JSONObject myJsonObject = new JSONObject(yourJson);
int length = myJsonObject.getJSONArray("groups").length();