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 中捕获动态数组维度

如何解码包含数组 Swift 4 的 JSON 文件?

Swift 2,如何从多阶段 JSON 响应中获取值

如何保存响应 JSON 数组并在 swift 中使用用户默认值进行检索

如何获取 JSON 响应数组的所有索引值?