在 swift 中反序列化 JSON
Deserialize JSON in swift
有没有办法正确反序列化 swift 中的 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
但只适用于 json 这个结构
{"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()
试试这个:
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)")
}
有没有办法正确反序列化 swift 中的 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
但只适用于 json 这个结构
{"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()
试试这个:
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)")
}