如何在 SwiftyJSON 中遍历 JSON 数据
Posted
技术标签:
【中文标题】如何在 SwiftyJSON 中遍历 JSON 数据【英文标题】:How to loop through JSON data in SwiftyJSON 【发布时间】:2017-09-05 16:52:00 【问题描述】:我有一个带有结构的 JSON 数据,但我不知道如何使用 for-loop 和 SwiftyJSON 来获取“路径”和“更新”值的每个部分条目。任何人都可以帮忙吗?谢谢。
var jsonData = "
"css":[
"path": "style.css",
"updated": "12432"
,
"path": "base.css",
"updated": "34627"
,
],
"html":[
"path": "home.htm",
"updated": "3223"
,
"path": "about",
"updated": "3987"
]
"
我尝试编写部分 for 循环
let json = JSON(jsonData)
for ( ) in json
let filepath =
let updated =
// do searching another json to found file exists and updates
【问题讨论】:
【参考方案1】:它在 README 的“循环”部分下:https://github.com/SwiftyJSON/SwiftyJSON#loop
// If json is .Dictionary
for (key,subJson):(String, JSON) in json
//Do something you want
// If json is .Array
// The `index` is 0..<json.count's string value
for (index,subJson):(String, JSON) in json
//Do something you want
应用于您的特定 JSON 结构:
let jsonData = """
"css": [
"path": "style.css",
"updated": "12432"
,
"path": "base.css",
"updated": "34627"
],
"html": [
"path": "home.htm",
"updated": "3223"
,
"path": "about",
"updated": "3987"
]
""".data(using: .utf8)!
let json = JSON(data: jsonData)
for (_, subJson):(String, JSON) in json
for (_, subJson):(String, JSON) in subJson
let filepath = subJson["path"].stringValue
let updated = subJson["updated"].stringValue
print(filepath + " ~ " + updated)
使用 Swift 4 可编码:
struct FileInfo: Decodable
let path, updated: String
let dec = try! JSONDecoder().decode([String:[FileInfo]].self,from: jsonData)
print(dec)
【讨论】:
【参考方案2】:根据你的 JSON 结构,使用这个:
for (index,subJson):(String, JSON) in json
print(index) // this prints "css" , "html"
for (key,subJson):(String, JSON) in subJson
let filepath = subJson["path"]
let updated = subJson["updated"]
【讨论】:
以上是关于如何在 SwiftyJSON 中遍历 JSON 数据的主要内容,如果未能解决你的问题,请参考以下文章
我将如何使用 SwiftyJSON 解析这种类型的 JSON?