2017-06-12 85 views
-3

在遷移到最新版本我發現很難獲得和使用雨燕4 Alamofire解析來自JSON打印的姓名,年齡,出生日期及的領域3.斯威夫特Alamofire遷移解析JSON

JSON格式

"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) 
       } 
+0

顯示你有什麼到目前爲止已經試過 – shim

+0

我試圖 Alamofire.request(網址! 方法:.POST, 參數:零, 編碼:JSONEncoding.default, 標題:標題) .responseJSON {在 響應讓datamsg = jsonmsg [ 「setValues方法」]作爲? [字符串:任何] 令數據集= datamsg [ 「數據」]作爲? ?[字符串:任何] 讓setValues方法= datamsg [ 「數據」] 打印(setValues方法[0] [ 「assetDateId」]作爲任何); –

+0

把它放在問題中。 – shim

回答

1

的問題是在這條線

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

從JSON響應字符串見過它應該像下面

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

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

謝謝大家的時間和精力的工作,它的解決方案我總算是:該類型的任何成員不能採取標,所以如果我需要索引值通過解析JSON穿越,我必須投最初的JSON響應於字典然後找到數據部分並用作?[String:Any]。 –