我在项目中保存了这些.plist和.json文件。我可以从Xcode读取.plist文件。虽然无法在Swift 3.0上读取.json文件。我使用下面的代码片段来获取此信息。但不能这样做。是否可以从.json文件中获取数据? 请分享您的建议。
可以获取PLIST文件
let plistFile = Bundle.main.path(forResource: "content", ofType: "plist")
let dictPlist = NSDictionary(contentsOfFile: plistFile!)
print(dictPlist ?? "")
无法获取JSON文件
if let filepath = Bundle.main.path(forResource: "fruits", ofType: "json") {
do {
let contents = try String(contentsOfFile: filepath)
print(contents)
} catch {
print("Fetched")
}
} else {
print("not found")
}
答案 0 :(得分:2)
Swift 4解决方案
如果找到了正确的文件路径,则文件编码可能存在问题。您应该明确提供json文件的实际编码。
要检查文件的编码,请在XCode中打开文件,然后查看右侧栏中的文件检查器:
if let filePath = Bundle.main.path(forResource: "data", ofType: "json"),
let data = NSData(contentsOfFile: filePath) {
do {
// here you have your json parsed as string:
let jsonString = try? String(contentsOfFile: filePath, encoding: String.Encoding.utf8)
// but it is better to use the type data instead:
let jsonData = try JSONSerialization.jsonObject(with: data as Data, options: JSONSerialization.ReadingOptions.allowFragments)
}
catch {
//Handle error
}
}