我有以下JSON字符串:
var txt=
{
"people":
[{
"person":
{
"firstname":"Jane",
"lastname":"Doe"
}
},
{
"person":
{
"firstname":"John",
"lastname":"Smith"
}
}
]
};
我希望程序提醒列表中有两个人,但是当我执行我的计数功能时,它只会说1(到'人'然后不会深入到列表中)。
答案 0 :(得分:3)
您不需要编写计数循环。 txt.people.length
将为您提供计数,因为txt.people
是一个数组对象。
请参阅我修改过的小提琴,例如:http://jsfiddle.net/rsBYb/5/
你的循环计算txt
中的元素 - 其中只有一个(people
数组)。如果您在循环中使用txt.people
,它会正常工作。您真的想要计算txt.people
中的元素,而不是txt
。
答案 1 :(得分:1)
答案 2 :(得分:1)
这是因为你算人而不是人。 将你的循环改为:
for ( property in txt.person )
{
count++;
}
alert("count = " + count);
答案 3 :(得分:1)
这应该有效:
txt.people.length
你可能需要做一个JSON.parse,这取决于你从哪里拉出你的JSON字符串(如果你在小提琴之外做任何事情)