嗨,我是 iOS 新手,我正在使用 Alamofire 进行网络调用。一切进展顺利,我在进行网络调用时没有遇到任何麻烦。但由于我必须发布我的自定义对象,所以我没有运气。所以这是我之前做过的事情
let parameters: Parameters = [
"Phone": phone,
"ApiKey":"x-y-z"
]
这工作正常。
但现在我必须发布我的对象,例如
let parameters: Parameters = [
"ApiKey": Common.API_KEY,
"cardModel": cardModel,
"clientModel" : clientModel
]
我的cardModel和客户端模型已经转换为Json字符串,我只是将它们放入字典中。转换后的模型如下所示
"cardModel": {
"ExpiryYear": 2018,
"ExpiryMonth": 1,
"CardNumber": "55555",
"CardHolderName": "xyz"
}
所以我将这些序列化模型放入字典中,并使用 Alamofire 将这些数据发布到请求正文中。
但是在服务器端这些模型是空的。知道如何按照我想要的方式放置自定义模型吗?请帮忙
PS 我刚刚打印出我的参数字典,并且我已经检查了这个输出
["ApiKey": "x-y-z",
"\cardModel\": "{
"\ExpiryYear\": 2018,
"\ExpiryMonth\": 1,
"\CardNumber\": "\55555\",
"\CardHolderName\": "\xyz\"
}
]
我将参数 json 打印输出放入 jsonLint 中,但格式错误。我刚刚删除了“\”并将 [] 替换为 {},然后它似乎是有效的 Json
那我现在应该做什么???请帮忙
更新1: 这是我的端点的有效 json(从 android 发送)
{
"ApiKey": "XXX-XXX-XXX",
"cardModel": {
"CardHolderName": "Fjj",
"CardNumber": "555",
"CardExpiryMonth": 1,
"CardExpiryYear": 2018
......
}
}
最佳答案
首先,您需要一个方法/计算属性,将模型转换为 [String: AnyObject]
或 [String: Any]
类型的字典。
然后,不要将模型添加到参数字典中,而是像下面的示例一样添加模型字典。
class CardModel: NSObject {
var expiryYear: Int?
var expiryMonth: Int?
var cardNumber: String?
var cardHolderName: String?
var jsonDict: [String: AnyObject] {
var json: [String: AnyObject] = [:]//Initializing an Empty Dictionary
json["expiryYear"] = expiryYear as AnyObject // Inserting expiryYear into Dictionary
json["expiryMonth"] = expiryMonth as AnyObject // Inserting expiryMonth into Dictionary
json["cardNumber"] = cardNumber as AnyObject // Inserting cardNumber into Dictionary
json["cardHolderName"] = cardHolderName as AnyObject // Inserting cardHolderName into Dictionary
return json // returning newly populated dictionary
}
}
func requestToServer(cardModel: CardModel) {
var parameters = [String: AnyObject]()
parameters["ApiKey"] = "dfv12345df234t" as AnyObject
parameters["cardModel"] = cardModel.jsonDict as AnyObject// adding card model dictionary into you paramters dictionary.
//Same logic will be use for your next clientModel
}
关于Ios如何使用Alamofire发布多个自定义对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50017231/