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