ios - 将 Dictionary 转换为 Json 以在 Alamofire 中传递参数

标签 ios json dictionary swift3

我有一个字典,键为用户名,值为电子邮件。我想使用 Alamofire 将其发送到 api 我不知道如何解决这个问题,因为我想将多个用户发送到 api 以一次保存。

字典

var selectedMembers = [String: String]()

保存在此字典中的数据附加在与 TableView 不同的 VC 中,我们可以在 TableView 中选择要在字典中附加多少用户。
现在我需要将此字典转换为 json 格式以通过 alamofire 发送到 api。

Json 甲酸盐
"users": [
        {
          "user_email": "abc@gmail.com",
          "user_name": "abc"
        }, 
        {
          "user_email": "abc2@gmail.com",
          "user_name": "abc2"
        }   
   ]

Alamofire 代码
let parameters: Parameters = [
            "users" : [
               [
                "user_name" : "user_name goes here",
                "user_email" : "user_email goes here"
               ]
            ]
        ]

        Alamofire.request("\(baseURL)", method: .post, parameters: parameters).responseJSON { response in

        }

我如何解决问题

我创建了一个函数,可以按照我想要的方式打印数据并将其放置在类似这样的 Alamofire 参数中。
var selectedMembers = [String: String]()
var smembers = [AnyObject]()
var selected = [String: String]()

if selectedMembers.isEmpty == false {
        for (key, value) in selectedMembers {
            selected = ["useremail": key, "catagory": value]
            smembers.append(selected as AnyObject)
        }
    }

let jsonData = try? JSONSerialization.data(withJSONObject: smembers, options: JSONSerialization.WritingOptions())
let jsonString = NSString(data: jsonData!, encoding: String.Encoding.utf8.rawValue)

let parameters: Parameters = [
            "users" : jsonString as AnyObject
        ]

        Alamofire.request("\(baseURL)", method: .post, parameters: parameters).responseJSON { response in

        }

最佳答案

您只需要在当前设置 user 时创建字典(用户)数组的值为 Dictionary而不是 Array .

let parameters: Parameters = [
    "users" : [
        [
            "user_name" : "abc",
            "user_email" : "abc@gmail.com"
        ],
        [
            "user_name" : "abc2",
            "user_email" : "abc2@gmail.com"
        ]
    ]
]
Alamofire.request("\(baseURL)", method: .post, parameters: parameters).responseJSON { response in

}

关于ios - 将 Dictionary 转换为 Json 以在 Alamofire 中传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44581987/

相关文章:

ios - 使用本地化的 Storyboard 进行即时本地化

json - Azure ARM 模板 - 访问由一个 ARM 模板在另一个 ARM 模板中创建的资源 ID

android - DialogBox 导致应用程序崩溃。

.net - 标准线程安全的 .Net 字典

python - 如何从字典创建数据框

python - python中如果value是key则删除字典的value

ios - Realm 列表和 Swift 数组

ios - iOS聊天应用程序如何在后台保持运行?

ios - iOS 如何暂停 10 秒发送输入而不丢失数据

c# - 序列化或反序列化 JSON 期间的 ASP.NET MVC4 错误 - 大数据