如何在快速向 alamofire 发送请求之前安排数组
Posted
技术标签:
【中文标题】如何在快速向 alamofire 发送请求之前安排数组【英文标题】:How to Arrangement array before send request to alamofire in swift 【发布时间】:2020-05-09 15:27:28 【问题描述】:let request = NSMutableDictionary()
request.setDictionary([ "merchant_reference":getRandomMerchant, "merchant_identifier":"e54638eb", "access_code":"hRRVGXrIpHSYoH19Ebwt", "signature": base64Str, "service_command":"OTP_GENERATE", "language":"en", "payment_option":"VALU", "phone_number":"01008606003", "merchant_order_id":getRandomMerchant, "amount":getTotal, "currency":"EGP", "products":[ [ "product_name": getName, "product_price": getTotal, "product_category":getProductType ] ] ])
Alamofire.request(URLAPi.URL_Payment_Api ,
method : .post ,
parameters : (request as! Parameters) ,
encoding: JSONEncoding.default
).responseJSON (response) in
debugPrint(response)
if response.result.isSuccess
let jsonpayfortrequest : JSON = JSON(response.result.value!)
var resultsArray = jsonpayfortrequest.arrayValue
var sortedResults = resultsArray.sorted $0.stringValue > $1.stringValue
print(jsonpayfortrequest)
print(resultsArray)
print(sortedResults)
print(jsonpayfortrequest.sorted(by: $0 > $1))
let passobjectforrootclasspayfort = OTPGenrateModel(fromJson: jsonpayfortrequest)
print(passobjectforrootclasspayfort.transaction_id!)
SVProgressHUD.dismiss()
else
print("error connection") SVProgressHUD.dismiss()
【问题讨论】:
// "product_category" = 1; // "产品名称" = kston27SZL660; // "product_price" = 265000; // "产品名称" = kston27SZL660; // "产品名称" = 1; // "product_price" = 265000; 我需要每个发送请求对象都变成这样的排列方式。产品名称。产品价格。产品类别 您的问题不清楚。 “前”?你能用当前输出和目标输出编辑你的问题吗? 每次向 json 这个对象发送请求时 [ "product_name": getName, "product_price": getTotal, "product_category":getProductType ]。每次向 json 发送请求时,此对象都会更改安排对象,例如 product_category。 product_pirce product_name 和另一个成为 product_price product_name product_category 和 我不需要我需要成为 product_name。 product_price product_category 最后在向 json 发送请求时需要这个安排。产品名称。 product_price product_category 【参考方案1】:试试这个方法,希望,这将解决您的问题。如果没有,请回复
let parameters: [String: Any] = [
"merchant_reference":getRandomMerchant,
"merchant_identifier":"e54638eb",
"access_code":"hRRVGXrIpHSYoH19Ebwt",
"signature": base64Str,
"service_command":"OTP_GENERATE",
"language":"en",
"payment_option":"VALU",
"phone_number":"01008606003",
"merchant_order_id":getRandomMerchant,
"amount":getTotal,
"currency":"EGP",
"products": [
[
"product_name": getName,
"product_price": getTotal,
"product_category":getProductType
]
]
]
Alamofire.request(URLAPi.URL_Payment_Api , method: .post, parameters: parameters, encoding: JSONEncoding.default)
.responseJSON response in
print(response)
// Insert your code here
【讨论】:
[ "product_name": getName, "product_price": getTotal, "product_category":getProductType ] 如何让这个对象在每次发送请求时总是打印这个排列 是的,我需要它,因为当发送请求项目时,这个对象会改变安排,例如变成 [ "product_price": getTotal, "product_category":getProductType, "product_name": getName ] 另一个变成 [ "product_category" :getProductType, "product_price": getTotal, "product_name": getName ] 所以每次发送请求时我都需要这个对象变成这样的安排 [ "product_name": getName, "product_price": getTotal, "product_category":getProductType ]跨度> 我已经更新了打印产品的答案。但是在发出 API 请求时它是一个字典,字典的顺序根本不重要。 不工作我认为这个 json 必须由后端开发人员处理 嗯,你能检查一下最近编辑的答案吗?请告诉我。你的 Alamofire 版本是什么?以上是关于如何在快速向 alamofire 发送请求之前安排数组的主要内容,如果未能解决你的问题,请参考以下文章
Alamofire 向 API 'NSInvalidArgumentException' 发送请求