改变了与评论相关的东西:所以现在我在ViewDidLoad上:
let itemsListJson:String = "jsons/items"
guard let urlItems = Bundle.main.url(forResource: itemsListJson, withExtension: "json") else { return }
do{
let dataItems = try Data(contentsOf: urlItems)
let jsonItems = try JSONSerialization.jsonObject(with: dataItems, options: .mutableContainers)
guard let arrayItems = jsonItems as? [Any] else {return}
dump(jsonItems)
UserDefaults.standard.set(arrayItems, forKey: "items")
UserDefaults.standard.synchronize()
}
catch{
print(error)
}
打印出我的对象
超级38元素#0超级9密钥/值对#1超级(2个元素)-密钥:装甲#2 -超级: NSString -超级: NSObject -▿:3 #3 -超级: NSString -超级: NSObject超级: min_damage▿(2个元素)-密钥:min_damage #4 -超级: NSMutableString -超级: NSString -▿用法: NSObject - value: 0 #5 - super: NSString - super: NSObject速度(2个元素)-键: id #6 - super: NSString - super: NSObject - value: 1 #7 - super: NSString - super: NSObject▿(2个元素)-键:▿#8
当我尝试使用:
guard let arrayItems = jsonItems as? [String: Any] else {return}
我没有得到任何结果。
如何将数据另存为字典。我就是弄不明白这一点,而且这些例子太老了,没有任何用处。请帮帮忙
发布于 2017-12-29 11:37:03
以下两行代码显示了您的问题:
guard let array_items = json_items as? [Any] else {return}
let zitems:Dictionary = (UserDefaults.standard.value(forKey: "items") as? [String:Any])!
在第一个示例中,将json_items声明为[Any]
,并将其写入关键字"items“。在第二个示例中,您读取了"items“,现在期望它是[String:Any]
。
https://stackoverflow.com/questions/48015247
复制相似问题