如何在快速向 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 快速发送获取请求

Alamofire 向 API 'NSInvalidArgumentException' 发送请求

快速发送带有参数的 Alamofire 请求

Alamofire publishDecodable 不会向服务器发送请求,但 responseDecodable 会

在后台接收静默推送时无法向 Alamofire 发出请求

如何从 API 发送错误