我如何发布请求:
它在数据库中的外观:
您好,我正在开发食品应用程序,我需要将订单详细信息发送到数据库。为此,我创建了一个类似
的数据类型ng serve
此。我随后下订单,
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
}
}
发布的数据应该看起来像第一张图像,但是当它输入数据库时,它会像第二张图像一样显示。而不是数组元素,只是单词“数组”。任何人都可以建议我做什么?
答案 0 :(得分:0)
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
传递给上述功能。