我正在尝试解析我在swift中使用循环手动创建的字符串。我把它作为一个字符串,然后我厌倦了使用Swifty JSON将该字符串转换为json。当我尝试遍历json时,我的代码永远不会进入循环。我怀疑存在数据类型问题,但我被困住了。任何帮助,将不胜感激。这是我创建的字符串
的json结构 [{
"category_name": "AIR SYSTEM",
"cntpassed": 0,
"cntfailed": 0,
"isfailed": 0,
"isstarted": 1,
"iscomplete": 1,
"isnotcomplete": 0,
"cnttotal": 5
}, {
"category_name": "ENGINE COMPARTMENT",
"cntpassed": 0,
"cntfailed": 0,
"isfailed": 0,
"isstarted": 1,
"iscomplete": 1,
"isnotcomplete": 0,
"cnttotal": 27
}, {
"category_name": "EXTER.",
"cntpassed": 0,
"cntfailed": 0,
"isfailed": 0,
"isstarted": 1,
"iscomplete": 1,
"isnotcomplete": 0,
"cnttotal": 3
}]
我使用swifty json方法将其转换为json
let json = JSON(jsonStringAbove)
然后我尝试在swift中循环播放
public func jsonFormSectionsArray(jsonString: String) -> Array<String>
{
print("In jsonFormsSectionArray")
var anArray: [String] = []
let json = JSON(jsonString)
print("\nHeres the JSON \(json)")
for (key, subJson) in json {
// My code never gets to this point
if let category = subJson["category_name"].string {
print(category)
anArray.append(category)
}
}
print("PETE --> In Function Array \(anArray)")
return anArray
}
答案 0 :(得分:2)
您的JSON看起来像一个字典数组,因此您无法使用键值对迭代它。您需要遍历数组。您不需要手动迭代字典的每个键值对,如果您知道键,则可以直接查找值。
我不确定SwiftyJSON创建的JSON是如何表示的,但是如果它是一个字典数组,那么这很好用。
for dictionary in json {
if let category = dictionary["category_name"] as? String {
print(category)
anArray.append(category)
}
}