如何创建一个里面有 2 个数组的字典?

How to create a dictionary with 2 arrays inside?

我想创建一个具有下一个结构的字典,以便通过 Alamofire 将其作为 JSON 发送到服务器:

{
    "user": {
        "firstName": "fName",
         "lastName": null,
         "img": null,
         "books": [
             {
                 "id": 1
             }, {
                 "id": 2
             }
         ]
    },

    "locale": "en",
    "gender": "male"
}

对于JSON这个结构,我尝试了下一个:

let parameters: [[String: [String: String]], [String: String]]

但是有很多闭包,所以我把它弄糊涂了。你能帮我创建这个结构吗?

Swift标准库中的集合类型只支持同类集合,即集合中的所有元素必须具有相同的类型。所以你不能声明一个数组,它的第一个元素是 [String: [String: String]] 类型,第二个元素是 [String: String] 类型,如果你想要的话。

这个有效:

let parameters = [
    "user": [
        "firstName": "fName",
        "lastName": NSNull(),
        "img": NSNull(),
        "books": [
            [ "id": 1],
            [ "id": 2]
        ]
    ],
    "locale": "en",
    "gender": "male"
]

parameters 的类型是 [String: NSObject],其中 NSObject 是字典中所有值的超类。请注意使用 NSNull 来模拟 null 值,这是 NSJSONSerialization 所期望的。