2016-10-29 4 views
-1

이 구조는 신속하게 json을 deserialize하는 방법이 있습니까?신속한 JSON 비 직렬화

{ 
Usuario =  (
      { 
     "picture_url" = ""; 
     id = 229; 
     name = "ABC"; 
    } 
);} 

나는 jsonHelper 라이브러리

let jsonData = try NSJSONSerialization.JSONObjectWithData(data!, options:NSJSONReadingOptions.MutableContainers) 
let jsonString = jsonData 
var mstemp = [usuario]() 
mstemp <-- jsonString 

으로이 테스트 만이 업데이트 jsons에 대한

코드이 구조

{"name": "myUser", "id": "1","picture_url": ""} 

을했다 :

let urlFinal = URLSERVIDOR+"/ws/rest/Geral/consultaUsuario?token=\(validotoken)&email=\(validoEmail)&senha=\(SenhaCriptada)" 
let jsonUrl = urlFinal 
let session = NSURLSession.sharedSession() 
let shotsUrl = NSURL(string: jsonUrl) 

let task = session.dataTaskWithURL(shotsUrl!) {data, response, error in 
    guard data != nil else { 
     falha() 
     return 
    } 

    do { 
     let jsonData = try NSJSONSerialization.JSONObjectWithData(data!, options:NSJSONReadingOptions.MutableContainers) 
     let jsonString = jsonData 
     var mstemp = [usuario]() 
     mstemp <-- jsonString 
     dispatch_async(dispatch_get_main_queue(),{ 
      sucesso(usuarioBaixado: mstemp) 
     }); 
    } catch _ { 
     falha() 
    } 
} 
task.resume() 
+0

당신이 뭘 하려는지? 'jsonData'는 파싱 된 JSON 데이터를 포함하는 사전입니다. – rmaddy

+0

예를 들어 json 데이터를 읽어야합니다. print (user.name) @rmaddy –

+1

OK, 그 일을 막으려 고합니다. Swift 사전에서 값에 액세스하는 방법을 알고 있습니까? 'jsonData'는 단순한 오래된 Swift 사전입니다. 다른 사전과 마찬가지로 데이터에 액세스합니다. – rmaddy

답변

0

이 시도 :

URLSession.shared.dataTask(with: shotsUrl!) { 
    (data, response, error) in 

    guard data != nil else { 
     return 
    } 

    guard let json = try? JSONSerialization.jsonObject(with: data!, options: []) as! [String: AnyObject], 
     let usuario = json["Usuario"] as! AnyObject else { 
      return 
    } 
    print ("Usuario:\n\t\(usuario["id"] as! Int)") 
    print ("\t\(usuario["name"] as! String)") 
    print ("\t\(usuario["picture_url"] as! String)") 
}