如何在swift中将json解析为struct

时间:2014-12-10 06:31:00

标签: json parsing swift

我有这样的结构:

struct Company {

    let name:String
    let id:Int
} 

我想从JSON解析一组公司。

你能帮我解决一下如何在Swift中做到这一点吗?

3 个答案:

答案 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