我有这样的结构:
struct Company {
let name:String
let id:Int
}
我想从JSON解析一组公司。
你能帮我解决一下如何在Swift中做到这一点吗?
答案 0 :(得分:1)
这是给未来的人们的。在Swift 4中,JSONDecoder
是一个非常好的解决方案。
使用Alamofire的代码将如下所示-
Alamofire.request(Router.login(parameters: parameters)).responseJSON {
response in
switch response.result{
case .success(_):
let decoder = JSONDecoder()
guard let _ = response.data else{
return
}
do {
let loginDetails = try decoder.decode(LoginDetails.self, from: response.data!)
// get your details from LoginDetails struct
} catch let err{
print(err)
}
case .failure(let error):
print(error)
}
}
https://developer.apple.com/documentation/foundation/jsondecoder
https://medium.com/xcblog/painless-json-parsing-with-swift-codable-2c0beaeb21c1
希望这会有所帮助!
答案 1 :(得分:0)
不幸的是,在swift中JSON解析并不容易。 您应该使用NSJSONSerialization类来执行此操作。
这里有很多examples可供查看。
答案 2 :(得分:0)
在Swift3中,可以将字典直接转换为struct use MappingAce
struct Company: Mapping {
let name:String
let id:Int
}
let companyInfo: [String : Any] = ["name" : "MappingAce", "id" : 1]
let company = Company(fromDic: companyInfo)
print(company.name)//"MappingAce"
print(company.id) // 1