Swift Alamofire迁移解析JSON

时间:2017-06-12 21:22:49

标签: ios swift alamofire

在迁移到最新版本时,发现使用Swift 3中的Alamofire 4解析很难从JSON获取并打印name,age和dob字段。

JSON FORMAT

"SetValues": {   
"data":
[
  {
    "Name": yyyyy ,
    "Age": 13,
    "DOB": "2017-06-08",
  }

  {
    "Name": xxxx ,
    "Age": 33,
    "DOB": "2015-06-08",
  }
]
}

我试过

Alamofire.request(url!,
                      method: .post,
                      parameters: nil,
                      encoding: JSONEncoding.default,
                      headers: headers)

        .responseJSON{ response in

                  let datamsg = jsonmsg?["SetValues"] as? [String : Any]

                  let dataset = datamsg?["data"] as? [String : Any]
                  let setValues = datamsg?["data"]
                  print (setValues[0]["Name"] as Any)
              }

1 个答案:

答案 0 :(得分:1)

问题出在这一行

let dataset = datamsg?["data"] as? [String : Any]

从JSON响应字符串中可以看出它应该如下所示

let dataset = datamsg?["data"] as? [[String : Any]]

let name = dataset?[0]["Name"] as? String