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

标签 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]]

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

最佳答案

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 是字典中所有值的父类(super class)。请注意使用 NSNull 来模拟 null 值,这是 NSJSONSerialization 所期望的。

关于ios - 如何创建一个里面有 2 个数组的字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36059402/

相关文章:

iphone - 用户启用安全登录时的 facebook 安全警告 - iPhone

ios - 未找到模块 'audio_session'

javascript - 在 JSON 对象的特定位置插入属性

println - 在 Swift 中执行 println 字典项时转义字典键双引号

swift - Xcode swift 用户特定数据和访问

iOS 9 : UIPrintInteractionController presentation issue

ios - Swift 中具有单个泛型函数的多种错误类型的泛型错误处理

ruby-on-rails - 什么是 RoR 响应中使用的默认 JSON 规范?

json - 使用 Go 解析 .Net JSON 日期

swift - 如何运行 AsyncTask 从服务器返回响应,然后继续到下一个 View Controller