簡體   English   中英

Alamofire在發送請求時拆分嵌套對象

[英]Alamofire split nested object while sending Request

我正在服務器上發送關注數據

params =  ["product": [["product_id": 1, "quantity": 6], ["product_id": 3, "quantity": 7], ["product_id": 4, "quantity": 1]]]
Alamofire.request("http://localhost/info-c.php", method:.post, parameters: params , headers:  getHeaderForLoggInUser() ).responseJSON { response in
                DispatchQueue.main.async(execute: {() -> Void in
                    switch response.result {
                    case .success:
                        if let json = JSON(response.result.value ?? [:]).dictionary{
                            print(json)
                            completed(json)
                        }else{
                            dError( "Internal server Error")
                        }
                        break
                    case .failure(let er):
                        dError( "Internal server Error \(er)")
                        break
                    }
                })
            }

但是在服務器端,我的身份是:

["product": [
  {
    "product_id" : "1"
  },
  {
    "quantity" : "6"
  },
  {
    "product_id" : "3"
  },
  {
    "quantity" : "7"
  },
  {
    "product_id" : "4"
  },
  {
    "quantity" : "1"
  }
]]

我也嘗試過

encoding: JSONEncoding.default,

然后我得到了

["{\"product\":": {
  "{\"product_id\":1,\"quantity\":6},{\"quantity\":7,\"product_id\":3},{\"product_id\":4,\"quantity\":1}" : ""
}]

我的API所需的輸入格式如下:
產物[0] [PRODUCT_ID]:1
產物[0] [量]:6
產物[1] [PRODUCT_ID]:2
產物[1] [量]:6

郵遞員的例子

  1. 建立模型

     struct Product { var product_id: Int var quantity : Int } 
  2. 從應用程序填充模型-基於選擇

     let product = Product.init(product_id: 1, quantity: 6) let product1 = Product.init(product_id: 2, quantity: 3) let product2 = Product.init(product_id: 4, quantity: 1) arrayProducts.append(product) arrayProducts.append(product1) arrayProducts.append(product2) 
  3. 在服務器調用之前-根據服務器要求設置參數。

      var parameters = [String: Any]() for (index, element) in arrayProducts.enumerated() { let dynamicProductIDKey = "product[\\(index)][product_id]" let dynamicProductIDValue = element.product_id let dynamicProductQuantityKey = "product[\\(index)][quantity]" let dynamicProductQuantityValue = element.quantity parameters[dynamicProductIDKey] = dynamicProductIDValue parameters[dynamicProductQuantityKey] = dynamicProductQuantityValue } 

現在,您可以將參數共享給服務器。

謝謝

嘗試以下字典

let dict = [
    "product[0][product_id]" : "1",
    "product[0][quantity]" : "6",
    "product[1][product_id]" : "2",
    "product[1][quantity]" : "6",
]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM