【问题标题】:how to send array data to api with alamofire? [closed]如何使用 alamofire 将数组数据发送到 api? [关闭]
【发布时间】:2019-09-06 08:18:13
【问题描述】:

这是我发送到 api 的参数

let params : [String : Any]  = [
      "interests" : interestParams
]

params的输出是这样的

[interests : ["Olahraga", "Sains", "Musik"]]

我需要像这样发送参数

{ "interests": ["Olahraga", "Sains", "Musik"] }

【问题讨论】:

  • 嗨@alex。没有看到你的实际代码很难......
  • 您在这方面遇到了什么困难并添加您尝试过的代码
  • 我的 api 返回总是“必须是数组类型”
  • 因为我的 api 需要这个 { "interests": ["Olahraga", "Sains", "Musik"] }
  • 不像我发送的 [兴趣:[“Olahraga”、“Sains”、“Musik”]]

标签: ios arrays swift api alamofire


【解决方案1】:

您可以将数组转换为 json 字符串,然后您可以将此 json 字符串传递到字典中。

使用此代码将数组转换为 json 字符串。

 func json(from object:Any) -> String? {
    guard let data = try? JSONSerialization.data(withJSONObject: object, options: []) else {
        return nil
    }
    return String(data: data, encoding: String.Encoding.utf8)
  }

    let interestParams = ["Olahraga", "Sains", "Musik"]
    let jsonString = json(from: interestParams)

像这样在字典中传递这个 json 字符串。

    let params : [String : Any]  = [
        "interests" : jsonString as Any
    ]

【讨论】:

    【解决方案2】:

    我一直都是这样做的,Xcode 不会像你想要的那样打印 json

    { "interests": ["Olahraga", "Sains", "Musik"] }
    

    但实际上它会在请求中以这种形式向服务器发送数据。

    所以不用担心 Xcode 会这样显示

    [interests : ["Olahraga", "Sains", "Musik"]]
    

    【讨论】:

    • oke ,实际上我的后端在他们的查询上做了一些错字。但感谢您的回答。