Swift 4 json 数组 - 如何获取值
Posted
技术标签:
【中文标题】Swift 4 json 数组 - 如何获取值【英文标题】:Swift 4 json array - how to get value 【发布时间】:2018-03-12 11:18:08 【问题描述】:我在 Swift 4 和 Alamofire 中有这段代码:
Alamofire.request("http://xxxx.pl/id=1", method: .get, parameters: nil)
.responseJSON response in
let jsonResponse = JSON(response.result.value!)
let resData = jsonResponse["ranking"].array
print("XXXX: \(jsonResponse)")
.responseString response in
if let error = response.result.error
print(error)
if let value = response.result.value
print(value)
运行此代码后,我得到一个带有以下参数的 json:
XXXX:
"ranking" :
"dataWidoczneOd" :
"second" : 0,
"year" : 2018,
"month" : 2,
"hourOfDay" : 0,
"dayOfMonth" : 1,
"minute" : 0
"opis" : "cx",
"id" : 50971,
"dataWidoczneDo" :
"second" : 0,
"year" : 2018,
"month" : 2,
"hourOfDay" : 0,
"dayOfMonth" : 31,
"minute" : 0
,
"grupy" : [
"nazwa" : "yyy",
"kod" : "yyy",
"id" : 51032,
"idkiPlikowGrafiki" : [
"51034"
],
"gracze" : [
"zakonczonaGra" : false,
"imieINazwisko" : "zzzz yyyy",
"email" : "tertretera@cccc.com",
"liczbaZdobytychPunktow" : "0.0",
"czasGry" : "0 min"
]
,
"nazwa" : "ttt",
"kod" : "ttt",
"id" : 50981,
"idkiPlikowGrafiki" : [
"50983",
"50986"
],
"gracze" : [
]
],
"nazwa" : "grupowy",
"idkiPlikowGrafiki" : [
"50976"
],
"typ" : "GRUPA",
"dataOd" :
"second" : 0,
"year" : 2018,
"month" : 2,
"hourOfDay" : 0,
"dayOfMonth" : 1,
"minute" : 0
如何从这个 json 数组中获取值并保存在变量中: - gracze(所有值) - idkiPlikowGrafiki(所有值) - 典型值(所有值) - kod(所有值) - dataWidoczneOd(所有值)
?
请帮忙:)
【问题讨论】:
你在使用 SwiftJSON 您可以使用 SwiftyJSON 序列化 json。 github.com/SwiftyJSON/SwiftyJSON 致SwiftyJSON
的两位推荐者:如果您不知道如何阅读和理解 JSON 的结构,那么您使用的工具是无关紧要的。而在 Swift 4 中,SwiftyJSON 作为解析工具实际上已经过时了。 Codable
协议更方便。
【参考方案1】:
您应该为此响应创建一个模型类,并使用例如 Codable 对其进行解析。 Here 就是一个很好的例子。
【讨论】:
以上是关于Swift 4 json 数组 - 如何获取值的主要内容,如果未能解决你的问题,请参考以下文章
如何在 swift 4 中使用 JSONDecoder 从嵌套 JSON 中获取数据?
IOS - 如何在 Swift 3 中从 JSON 中捕获动态数组维度