ios - 在 Swift 中将数组转换为 Alamofire 参数

标签 ios json swift parameters alamofire

我正在使用 Alamofire 调用外部 API 上的 .put 方法。在 Postman 中,我可以按以下格式成功传递原始 JSON 数据,其中每个项目都包含一个 ID 和数量。 :

[{
    "id":"176",
    "quantity":"2"
}, {
    "id":"178",
    "quantity":"1"
}]

cURL 示例:

PUT /cart HTTP/1.1
Host: someapi.biz
x-api-key: somekey
x-auth-token: sometoken
Content-Type: application/json
cache-control: no-cache
Postman-Token: sometoken
[{
    "id":"176",
    "quantity":"2"
}, {
    "id":"178",
    "quantity":"1"
}]------WebKitFormBoundary7MA4YWxkTrZu0gW--

我很快就无法弄清楚如何将此信息正确格式化为 Alamofire 的一组参数。

    for item in OrderedItems {
                let rowItem: JSON = ["id" : item.ID, "quantity" : item.Quantity]
??
}

最佳答案

检查下面的代码:

var arrParam = [Any]()
    for item in OrderedItems
    {
        let rowItem: JSON = ["id" : item.ID, "quantity" : item.Quantity]
        arrTemp.append(rowItem)
    }

    // Convert Array into JSON String (Raw)
    guard let data = try? JSONSerialization.data(withJSONObject: arrParam, options: []) else {
        return
    }
    let paramString = String(data: data, encoding: String.Encoding.utf8)

    var request = URLRequest(url: URL(string: "URL")!)
    request.httpMethod = HTTPMethod.put.rawValue
    request.httpBody = paramString?.data(using: .utf8)

    Alamofire.request(request).responseJSON { (response) in

    }

希望这对您有帮助。

关于ios - 在 Swift 中将数组转换为 Alamofire 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52810713/

相关文章:

c# - "Invalid Swift Support"在 Xamarin.iOS 中使用 native Swift 库

ios - Swift 3 - 根据单击的单元格在 TableViewController swift 文件中设置变量

ios - 多维数组和 UITableView

ios - hidesBackButton 不起作用,即使在 viewDidLoad 中

Swift 正则表达式搜索字符串除了\r\n 和\t

ios - UITableView:如何通过长按更改自定义单元格中的 UIView 状态?

objective-c - 启用 NSCoder 的类的简单方法

iphone - 当我们单击我的自定义注释图钉时,自定义标注 View 未显示在 View 中心(iphone)

json - Hive 表的 JSON 文件的条目分隔符

swift - NSInvalidArgumentException - 'Invalid top-level type in JSON write' - swift