Ios 使用Alamofire发布嵌套模型
我必须在服务器上发布一些数据。下面给出了数据的JSON结构Ios 使用Alamofire发布嵌套模型,ios,json,swift,model,Ios,Json,Swift,Model,我必须在服务器上发布一些数据。下面给出了数据的JSON结构 "hospital": { "hospitalId": "1212111", "hospitalName": "xcxcxcx", "address": { "addressLine1": "fagsgsah", "locality": { "id": "", "name": "", "pLink": ""
"hospital": {
"hospitalId": "1212111",
"hospitalName": "xcxcxcx",
"address": {
"addressLine1": "fagsgsah",
"locality": {
"id": "",
"name": "",
"pLink": ""
},
"city": {
"id": "",
"name": "",
"pLink": ""
}
}
}
我可以很容易地使用字典来实现这种数据结构。但我已经读到,创建模型是发布和解析数据的最佳实践。我创建了四个模型,分别是医院、地址、州、城市,以提高灵活性。正如您在医院模型中看到的那样,任何模型中都可能有更多属性。我的问题是如何实现给定的JSON结构,我可以将其作为参数传递给Alamofire。我是否必须根据数据要求在模型中编写多个初始值设定项
import UIKit
class Hospital {
var hospitalId:String?
var hospitalName:String?
var address:Address?
var fee:Int?
var openingTime:UInt64?
var closingTime:UInt64?
}
/** Address **/
class Address {
var addressLine1:String?
var locality:Locality?
var city:City?
}
/** City **/
class City {
var cityId:String?
var cityName:String?
var cityPLink:String?
}
/** locality **/
class Locality {
var localityId:String?
var localityName:String?
var localityPLink:String?
}
Almofire不支持将模态类自动绑定到响应中。是的,您应该使用每个模态类的JSON数据编写模态初始值设定项
提供了如何将简单JSON、集合和嵌套JSON数据绑定到模式类的示例。试试这可能会有所帮助
import Foundation
class Hospitalmodel: NSObject {
var hospitalId:String!
var hospitalName:String!
var fee:Int!
var openingTime:UInt64!
var closingTime:UInt64!
var address:Address!
init(dict:NSDictionary){
if(dict["hospitalId"] != nil){
self.hospitalId = dict["hospitalId"] as! String
}
if(dict["hospitalName"] != nil){
self.hospitalName = dict["hospitalName"] as! String
}
if(dict["address"] != nil){
let send = dict["address"] as! NSDictionary
if send.allKeys.count>0{
self.address = Address.init(dict: send)
}
}
}
}
class Address {
var addressLine1:String!
var locality:Locality!
var city:City!
init(dict:NSDictionary)
{
if(dict["addressLine1"] != nil){
self. addressLine1 = dict["addressLine1"] as! String
}
if(dict["locality"] != nil){
let send = dict["locality"] as! NSDictionary
if send.allKeys.count>0{
self.locality = Locality.init(dict: send)
}
}
if(dict["city"] != nil){
let send = dict["city"] as! NSDictionary
if send.allKeys.count>0{
self.city = City.init(dict: send)
}
}
}
}
class Locality {
var localityId:String!
var localityName:String!
var localityPLink:String!
init(dict:NSDictionary)
{
if(dict["id"] != nil){
self.localityId = dict["id"] as! String
}
if(dict["name"] != nil){
self.localityName = dict["name"] as! String
}
if(dict["pLink"] != nil){
self.localityPLink = dict["pLink"] as! String
}
}
}
class City {
var cityId:String!
var cityName:String!
var cityPLink:String!
init(dict:NSDictionary)
{
if(dict["id"] != nil){
self.cityId = dict["id"] as! String
}
if(dict["name"] != nil){
self. cityName = dict["name"] as! String
}
if(dict["pLink"] != nil){
self.cityPLink = dict["pLink"] as! String
}
}
}
我还没有试用过swift4编码表,如果您使用swift4,它可能是您的选择,如果它是SWIFT3,那么我建议您使用
请看一看非常易于使用的示例。我可以将模型数据转换为json,然后将其附加到请求正文中。我只想要模型部分,我能处理阿拉莫菲尔。