![](/img/trans.png)
[英]post JSON object with a dictionary and an array of dictionaries using alamofire
[英]How to post an array of dictionary (json object), in swift using alamofire?
我需要如何发布请求:
它在数据库中的外观:
您好,我正在开发食品应用,我需要将订单详细信息发送到数据库。 为此,我创建了一个数据类型,例如
class orderModel : NSObject {
var menu_name : String = ""
var quantity : Int = 0
var price : Double = 0.0
var menu_id : String = ""
init?(menu_name : String,menu_id : String, price : Double, quantity : Int) {
guard !menu_id.isEmpty else{
return nil
}
self.menu_name = menu_name
self.menu_id = menu_id
self.price = price
self.quantity = quantity
}
}
这个。 然后我下订单,
let parameters : Parameters = [
"custid" : defaults.object(forKey: "userid")!,
"carttotal" : Int(totalPrice),
"cartitems" : ordersArray,
"deliverytime" : timeSlot,
"custaddress" : custAdd!,
"areacode" : defaults.object(forKey: "areaCode")!
]
Alamofire.request(orderPlaceURL, method: .post, parameters: parameters).responseJSON { response in
print((response.result.value)!)
}
totalPrice = 0.0
ordersArray.removeAll()
发布的数据应该看起来像第一个图像,但是当输入到数据库中时,它显示的像第二个图像。 代替数组元素,只有单词“ Array”。 谁能建议我该怎么办?
Alamofile
参数对象的类型为[String: Any]
,这不是您想要的类型。 而是制作一个包含多个字典的数组,并将其传递给此函数:
func uploadDataToServer(endPoint: String, dataToUpload: [[String: Any]], completionHandler:@escaping (Bool) -> ()){
let url = Config.BASE_URL + endPoint
var request = URLRequest(url: URL.init(string: url)!)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
let dataToSync = dataToUpload
request.httpBody = try! JSONSerialization.data(withJSONObject: dataToSync)
Alamofire.request(request).responseJSON{ (response) in
print("Success: \(response)")
switch response.result{
case .success:
let statusCode: Int = (response.response?.statusCode)!
switch statusCode{
case 200:
completionHandler(true)
break
default:
completionHandler(false)
break
}
break
case .failure:
completionHandler(false)
break
}
}
}
您的数组应为:
var uploadArray = [[String: Any]]()
let ordersDictionary = [
"custid" : defaults.object(forKey: "userid")!,
"carttotal" : Int(totalPrice),
"cartitems" : ordersArray,
"deliverytime" : timeSlot,
"custaddress" : custAdd!,
"areacode" : defaults.object(forKey: "areaCode")!
]
uploadArray.append(ordersDictionary)
然后将uploadArray
传递给上述函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.