我正在使用一些类似于:
的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
的长度?
我试过
我找不到任何关于具有良好信息的多层json对象的文档。
任何链接或示例或建议都将不胜感激。
答案 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);
});
答案 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();