【发布时间】:2017-08-16 21:58:26
【问题描述】:
我整个星期都在挣扎。我是编程新手。我无法将简单的 JSON 文件转换为 Xcode 中的字典。使用 Codable 的新方法在线几乎没有简化文档。所以我正在使用一个演练,其中包含以下代码。
导入 UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
guard let path = Bundle.main.path(forResource: "menu", ofType: "json") else { return }
let url = URL(fileURLWithPath: path)
do {
let data = try Data(contentsOf: url)
let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers)
//print(json)
guard let array = json as? [Any] else { return }
for user in array {
guard let userDict = user as? [String: Any] else { return }
guard let drinks = userDict["drinks"] as? String else { print("not a String"); return }
guard let junkFood = userDict["junk-food"] as? String else { return }
print(drinks)
print(junkFood)
print(" ")
}
}
catch {
print(error)
}
}
}
The below code is what my JSON looks like.
{"menu": {
"drinks": [
{"coke": "20"},
{"pepsi": "20"},
{"water": "20"}
],
"junk-food": [
{"hamburger": "40"},
{"fries": "20"},
{"pizza": "20"}
]
}}
谁能给我介绍一下,或者给我看一些简化的文档,告诉我如何将 JSON 转换成字典,以后可以从中映射数据?我正在使用 Xcode 并尝试开发 Swift 4。
提前感谢您的耐心等待。
【问题讨论】:
-
您发布的代码能走多远?请更新您的问题。你的标题说你想要一个数组。你问题的结尾说你想要一本字典。您的代码表明您的 JSON 文件是一个字典数组。
-
抱歉,我指的是字典。它确实完全打印。但是我可以完全注释掉第二个守卫中的所有代码。所以我猜它没有阅读那部分代码。感谢您的快速回复