Gui*_*uig 3 json dictionary swift
我正在尝试在swift中设置一个简单的字典:
var dict = [
"_id": "123",
"profile": [
"name": "me",
"username": nil,
]
] as [String : Any]
Run Code Online (Sandbox Code Playgroud)
然而,失败了Contextual type 'AnyObject' cannot be used with dictionary literal.下面这个问题,我已经试过更换[String : Any]的[String : [String : Any]],但逻辑上失败,因为第一个值类型String,而不是[String : Any].
我只想拥有一些东西,它可以包含任何我可以表示为json的数据,而且我可以在稍后尝试访问它时保留一些东西.
Swift是一种严格类型的语言,所以问题是当你添加nil到字典时,它将无法知道它的值将是什么类型,所以它会抱怨说类型是模糊的.
您可以通过执行以下操作来指定键的类型和字典的值:
let profile: [String: AnyObject?] = ["name": "me", "username": nil]
let dict = ["_id": "123", "profile": profile] as [String : Any]
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用init(dictionaryLiteral:)构造函数来创建字典:
let dict = [
"_id": "123",
"profile": Dictionary<String, AnyObject?>(dictionaryLiteral: ("name", "me"), ("username", nil))
] as [String : Any]
Run Code Online (Sandbox Code Playgroud)