如何在里面创建一个包含2个数组的字典?

时间:2016-03-17 11:35:47

标签: ios json swift nsdictionary

我想创建一个包含下一个结构的字典,通过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]]

但是有很多关闭,所以我对它感到困惑。你能帮我创建这个结构吗?

1 个答案:

答案 0 :(得分:1)

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期望的值。