Tim*_*eng 5 json dictionary swift
我正在尝试在 Swift 中创建一个嵌套字典,以便稍后将其更改为 JSON。我是这样设置的:
let item: [String: AnyObject] = [
"item": item,
"price": price,
"date": date,
"time": time,
"location": [
"store": "Store name",
"address": "1234 Untitled Dr.",
"city": "City",
"state": "CA",
"zip": "12345"
]
]
print(item)
Run Code Online (Sandbox Code Playgroud)
当我运行它时,输出是这样的:
["price": 15.69, "location": {
address = "12350 Carmel MT Road";
city = "City";
state = CA;
store = "Store name";
zip = 12345;
}, "item": item, "date": , "time": ]
Run Code Online (Sandbox Code Playgroud)
位置值应该是一个嵌套字典。为什么定位部分周围有花括号?为什么在是否有引号时值不一致?此外,当我尝试访问时:
print(items["location"]!["store"])
Run Code Online (Sandbox Code Playgroud)
有人告诉我:
不能使用类型为“String”的索引为“[[String : AnyObject]]”类型的值添加下标
简短回答:
使用[String: Any]代替[String: AnyObject]。
较长的答案::
事情是基金会自动桥梁斯威夫特核心类型可可。这就是说 Swift由于约束Dictionary而被自动桥接,一个 Swift 结构不能被强制转换为一个并且是一个结构。NSDictionaryAnyObjectAnyObjectDictionary
该print函数调用description属性,这对于NSDictionaryS与大括号内。
当指定Any而不是AnyObjectSwift 时,只会将变量类型设置为带有方括号的 Dictionary description。
PS
关于这subscript件事,我认为你在那里有一个数组,所以你应该使用类似items[0]["location"]!["store"].