如何创建一个包含 2 个数组的字典?
Posted
技术标签:
【中文标题】如何创建一个包含 2 个数组的字典?【英文标题】:How to create a dictionary with 2 arrays inside? 【发布时间】:2016-03-17 11:35:47 【问题描述】:我想创建一个具有下一个结构的字典,通过 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]]
但是有很多闭包,所以我对此感到困惑。你能帮我创建这个结构吗?
【问题讨论】:
我觉得好像***.com/questions/31793155/… 【参考方案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
所期望的。
【讨论】:
Alamofire 需要AnyObject
,不需要强制NSObject
。
是的,但是编译器推断的类型是[String: NSObject]
。
它将我的NSNull()
打印为email = "<null>";
可以吗?这里就像一个字符串以上是关于如何创建一个包含 2 个数组的字典?的主要内容,如果未能解决你的问题,请参考以下文章