json - 来自文件的 SwiftlyJSON 数据
问题描述
这是我第一次使用 swiftlyJSON,我遇到了问题。我在本地 json 文件中有数据,我需要使用该文件获取单个对象。我使用了 swiftlyjson 但我不知道如何解析文件。现在我有了将文件转换为字符串的想法,并且该字符串转为 JSON。我有类似的东西,这很有效,但我正在寻找最简单的方法
import Foundation
class TakeDataPropertiesDish{
func parseData(){
var json: String = ""
if let filepath = Bundle.main.path(forResource: "PropertiesDish", ofType: "json") {
do {
json = try String(contentsOfFile: filepath)
} catch {
print("error parse json file to string")
}
}
if let data = json.data(using: .utf8) {
if let json = try? JSON(data: data) {
for item in json["dish"].arrayValue {
print(item["name"].stringValue)
}
}
}
}
}
解决方案
如果要消除嵌套的“if let”语句,则可以使用保护语句:
func parseData() {
guard let filepath = Bundle.main.path(forResource: "PropertiesDish", ofType: "json") else { return }
guard let jsonData: Data = try? String(contentsOfFile: filepath).data(using: .utf8) else { return }
guard let json = try? JSON(data: jsonData) else { return }
for item in json["dish"].arrayValue {
print(item["name"].stringValue)
}
}