【问题标题】:Post JSON request in Swift 3在 Swift 3 中发布 JSON 请求
【发布时间】:2017-06-07 16:34:42
【问题描述】:

我需要发布如下所示的 JSON 数据:

 { “orders”:[ {“id”: 208, “quantity”: 1 },{“id”: 212, “quantity”: 2},{“id”: 202, “quantity”: 5}, ...etc  ],“HHStatus”: “1 }

我有以下变量:

var orders : [ShoppingCart] = []

包含的数据为:

[Crash.ShoppingCart(drinkId:743,drinkName:“aqua”,drinkPrice:“2.26”,drinkQuantity:2),Crash.ShoppingCart(drinkId:715,drinkName:“yellow”,drinkPrice:“6.92”,drinkQuantity :1),Crash.ShoppingCart(drinkId:738,drinkName:“blue”,drinkPrice:“4.69”,drinkQuantity:2)]

...等

我可以使用以下方式发布请求:

for order in orders {
        let orderId = order.drinkId
        let orderQuantity = order.drinkQuantity

    let parameters = ["orders": [["id": orderId, "quantity": orderQuantity]], "HHStatus": orderHHStatus!] as [String : Any]

    let jsonData = try! JSONSerialization.data(withJSONObject: parameters, options: .prettyPrinted)

但是我想要整个订单,而不仅仅是一个 id 和一个数量,

我尝试过使用:

    let orderId = orders.map { $0.drinkId }
    let orderQuantity = orders.map { $0.drinkQuantity }

    let parameters = ["orders": [["id": orderId, "quantity": orderQuantity]], "HHStatus": orderHHStatus!] as [String : Any]

    let jsonData = try! JSONSerialization.data(withJSONObject: parameters, options: .prettyPrinted)

但后来我得到了这样的结果:

["HHStatus": "0", "orders": [["id": [743, 715, 738], "quantity": [2, 1, 2]]]]

如何在一个请求中发送所有 ID 和数量?

我不知道如何获得类似的东西:

["orders": [["id": orderId, "quantity": orderQuantity],["id": orderId, "quantity": orderQuantity], ["id": orderId, "quantity": orderQuantity]], "HHStatus": orderHHStatus!]

非常感谢您提供的任何帮助!

【问题讨论】:

    标签: ios json swift post


    【解决方案1】:
    • 使用map 函数将ShoppingCart 数组映射到字典数组:

      let mappedOrders = orders.map { ["id" : $0.drinkId, "quantity" : $0.drinkQuantity] }
      
    • 创建parameters 字典

      let parameters : [String:Any] =  ["orders" : mappedOrders, "HHStatus" : orderHHStatus!]
      

    不要传递.prettyPrinted选项,服务器不关心美观。
    省略options 参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-07
      • 2016-11-24
      • 1970-01-01
      • 1970-01-01
      • 2018-07-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多