Ios 在swift中循环内部循环

Ios 在swift中循环内部循环,ios,arrays,swift,Ios,Arrays,Swift,我得到了一个包含如下数组的JSON文件 "vars": [ { "key": "f1", "link": "@cooldownchampion", "coeff": [ 24, 23, 22,

我得到了一个包含如下数组的JSON文件

"vars": [
                  {
                     "key": "f1",
                     "link": "@cooldownchampion",
                     "coeff": [
                        24,
                        23,
                        22,
                        21,
                        20
                     ]
                  },
                  {
                     "key": "f4",
                     "link": "@text",
                     "coeff": [
                        150,
                        175,
                        200,
                        225,
                        250,
                        275,
                        300,
                        325,
                        350,
                        375,
                        400,
                        425,
                        450,
                        475,
                        500,
                        525,
                        550,
                        575
                     ]
                  }
               ]
我想在循环内部做一个循环,以获得所有的coeff条目

这是我的循环

for (key,subJson):(String, JSON) in newjson["vars"]{
   for (key,subJson):(String, JSON) in newjson["vars"][key]["coeff"]{
      print (subJson) // this should print 24/23/22/21 but it doesn't
}

}

正如您所知,我使用SWIFTYJSON库来处理JSON文件

我不知道如何使用swift编码

如果使用object-c

NSArray *vars = [jsonDict objectForKey:@"vars"];

for (NSDictionary *dict in vars) {

   NSString *key = [dict objectForKey:@"key"];

   NSArray *coeff = [dict objectForKey:@"coeff"];

}

问题是您的第一个
键是
字符串
,要按索引访问元素,需要
Int

您可以通过强制转换来解决此问题:

for (key,subJson):(String, JSON) in newjson["vars"] {
    for (key,subJson):(String, JSON) in newjson["vars"][Int(key)!]["coeff"]{
        print (subJson) // this should print 24/23/22/21 but it doesn't
    }
}
但更好的方法是像这样使用现有的JSON对象(
subson
):

for (key,subJson):(String, JSON) in newjson["vars"] {
    for (key,subJson):(String, JSON) in subJson["coeff"]{
        print (subJson) // this should print 24/23/22/21 but it doesn't
    }
}

您正在使用key:String为数组编制索引,indexInTheArray应该是一个整数

,那么它会打印什么?//这应该打印24/23/22/21,但它不会,只是清空当JSON键与数组关联时,您需要使用
数组
属性。同样,您需要使用正确的属性来获取预期类型的选项(ej
.int
.string
等)
newjson[“vars”]。例如,数组
。。。newjson[“vars”][0]。。。。等找到一个错误。您的快速JSON语法错误。你确定钥匙的价值吗?newjson[“vars”][index]中的索引与(key,value)对中的键不同……谢谢你,但我不能启动OBJECT-C^^“并且我不能将此代码嵌入我的swift代码中:(@Alexandre Perez我没有看到你的回答,很抱歉我想要“复制”,但谢谢你的反馈!一旦你赢得总共15个声誉,你的投票将改变公开显示的帖子。。。
for (key,subJson):(String, JSON) in newjson["vars"]{
   for (key,subJson):(String, JSON) in newjson["vars"][indexInTheArray]["coeff"]{
      print (subJson) // this should print 24/23/22/21 but it doesn't
}

}