2017-05-12 69 views
0

我知道這個問題被問了很多次,但我嘗試了一切,我不知道爲什麼我的代碼不工作,我的結果總是零。 i集成alomafire和swiftyjson這是我的代碼:swift 3 alamofire swiftyjson下標

let urlString = "myurl" 

      let params: Parameters = [ 
       "accessProvider": AccessProvider, 
       "inputToken": AccessToken 
      ] 


      Alamofire.request(urlString, method: .post, parameters: params, encoding: URLEncoding.httpBody) 
       .responseJSON { response in 
        if let responseObject = response.result.value { 
         print("JSON: \(responseObject)") 

         let json = JSON(responseObject) 

         let path: [JSONSubscriptType] = ["user","id"] 
         let name = json[path].string 
         print("AAAAA") 
         print(name) 
        } 
      } 

我可以讀取用戶的第一部分,但第二個與ID始終爲零。 這是響應JSON:

{ 
    "responseCode": 0, 
    "responseDescription": "OK", 
    "user": "{"id":"MAIL", 
     "nickname":"MYNAME", 
     "level":"U", 
     "status":"A", 
     "sex":null, 
     "ageGroup":null, 
     "address":null, 
     "latitude":null, 
     "longitude":null, 
     "creation_timestamp":"2017-05-10 18:40:21", 
     "notification":"1", 
     "last_login":"2017-05-11 18:32:07", 
     "mobilePreference":null, 
     "sport":null, 
     "spot":null, 
     "token":"LONGTOKENID"}" 
} 

我希望u能幫助我,在此先感謝。

+0

鍵'user'的值似乎是另一個JSON字符串。你對服務器端負責嗎?如果是,請考慮發送字典。 – vadian

+0

我不是服務器端的責任人,我該如何避免這個問題? – Jianload

+0

您需要將字符串(使用SwiftyJSON)反序列化爲字典。 – vadian

回答

0

謝謝vadian, 我解決了問題,你的指示, 如果任何人有可以解決這樣同樣的問題: //初始化第一JSON:

let json = JSON(responseObject) 

//提取第二JSON來字符串

let path: [JSONSubscriptType] = ["user"] 
let name = json[path].string 

//從字符串初始化第二JSON

if let dataFromString = name?.data(using: .utf8, allowLossyConversion: false) 
let jsonuser = JSON(data: dataFromString) 

//訪問數據

謝謝大家, 祝您有美好的一天。