我在下面有一个JSON对象,并且有多个嵌套的分区,第一个没有任何标识符。我正在尝试使用for循环访问上一个部门中的团队,但我无法访问它们。需要一些指导。
{
"division": {
"division": [
{
"team": {
"id": "229525",
"name": "MyTeam",
"photo": "",
"visible": "True",
"RosterView": "True",
"PublicResults": "True",
"Statistics": "False",
"privilege": [
"False",
"True",
"True",
"True",
"True",
"True",
"True"
]
},
"name": "Boys 9-10",
"id": "12897",
"sort": "0",
"open": "0"
},
{
"team": [
{
"id": "229523",
"name": "Cougars",
"photo": "",
"visible": "True",
"RosterView": "True",
"PublicResults": "True",
"Statistics": "False",
"privilege": [
"False",
"True",
"True",
"True",
"True",
"True",
"True"
]
},发布于 2013-04-25 09:39:20
更新:嗯,在仔细阅读了你的JSON之后,我注意到第一部门只有一个团队,因为这个团队只有一个对象。但看起来第二师有不止一支队伍,因为队伍中有一组物体。我想你必须处理一个分区中只有一个团队的情况。
您的for循环几乎是正确的。试试这个:
var divisions = JSONObject.division.division;
for (var i=0; i < divisions.length; i++) {
// handle division of one team here,
// don't need for loop if there only one team
// just do division[i].team.id
for (var j=0; j < divisions[i].length; j++) {
var teamId = divisions[i].team[j].id;
alert(teamId);
}
}你的循环是
for (i=0; i <= JSONObject.division.division.teams[i].length; i++) { }它有两个问题,第一,你跳过了最后一个元素,第二,JSONObject.division.division.teams[i]不是一个数组,但是这个JSONObject.division.division[i].team会给你一个组织中所有团队的数组。然后,您可以通过数组中的索引来获取所需的团队:)
发布于 2013-04-25 09:24:44
首先,你应该在json中修正你的括号。
var a = {
"division": {
"division": [
{
"team": {
"id": "229525",
"name": "MyTeam",
"photo": "",
"visible": "True",
"RosterView": "True",
"PublicResults": "True",
"Statistics": "False",
"privilege": [
"False",
"True",
"True",
"True",
"True",
"True",
"True"
]
},
"name": "Boys 9-10",
"id": "12897",
"sort": "0",
"open": "0"
},
{
"team": [
{
"id": "229523",
"name": "Cougars",
"photo": "",
"visible": "True",
"RosterView": "True",
"PublicResults": "True",
"Statistics": "False",
"privilege": [
"False",
"True",
"True",
"True",
"True",
"True",
"True"
]
}
]
}
]
}
}然后,您可以使用以下命令访问第二个'team‘对象:
a['division']['division'][1]['team'][0]['id'];这将为您提供id。你可以选择任何你想要的东西。这并不是那么复杂。像拼图一样读就行了。
这是一个真实的例子:JSFiddle
下面是一些循环:
var json1 = a['division']['division'][1]['team'][0]; // this is for second team array,
json2 = a['division']['division'][0]['team']; // this is for first team object,
for (obj in json1){
return json[obj];
};根据您的json,第一个和第二个teams的数据类型不同。第一组是数组,第二组是对象。这就是为什么有两个不同的变量。
https://stackoverflow.com/questions/16204753
复制相似问题