Ios 如何在swift 5中将.txt文件json读入字典
嗨,我有一个json在下面的结构中Ios 如何在swift 5中将.txt文件json读入字典,ios,arrays,swift,Ios,Arrays,Swift,嗨,我有一个json在下面的结构中 { "SCALE085": { "Fingerprints": [ { "FingerImpressionImage": { "BinaryBase64ObjectBMP": "aaaaaaaaaa" } }, { "FingerImpressionImage": { "BinaryBase64ObjectBMP": "bb
{
"SCALE085": {
"Fingerprints": [
{
"FingerImpressionImage": {
"BinaryBase64ObjectBMP": "aaaaaaaaaa"
}
},
{
"FingerImpressionImage": {
"BinaryBase64ObjectBMP": "bbbbbbbbbb"
}
},
{
"FingerImpressionImage": {
"BinaryBase64ObjectBMP": "cccccccccc"
}
},
{
"FingerImpressionImage": {
"BinaryBase64ObjectBMP": "dddddddddd"
}
}
]
}
}
我的json保存在此位置
file:///var/mobile/Containers/Data/Application/4D2740FA-B119-46EB-8EDD-5FEFA11CFEC1/Documents/TEstApp/ExportDemo/swift_fingerprints_0_2020.03.02_01.06.10.txt
我试图实现的是在如下数组中获取键“BinaryBase64ObjectBMP”的值
[“aaaaaa”、“bbbbbbbb”、“ccccccc”、“dddddddd”]
我该怎么做
我已将完整文件路径传递到下面的函数中,但它崩溃了
func readFromFile(file:URL){
let url = file
do {
let jsonData = try Data(contentsOf: url)
let json = try JSONSerialization.jsonObject(with: jsonData) as! [[[String: Any]]]
print(json)
}
catch {
print(error)
}
}
坠机事件表明没有这样的文件
file:///var/mobile/Containers/Data/Application/4D2740FA-B119-46EB-8EDD-5FEFA11CFEC1/Documents/TEstApp/ExportDemo/swift_fingerprints_0_2020.03.02_01.06.10.txt
但我也可以看到文件夹中的文件您需要先访问文档文件夹,然后附加文件名,并检查该路径上是否存在文件,如下所示
func getFileDocumentDirectory(name: String) -> URL? {
let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let fileURL = documentsDirectory.appendingPathComponent(name)
if FileManager.default.fileExists(atPath: fileURL.path) {
do {
return fileURL
} catch {
return nil
}
}
return nil
}
在您的情况下,文件名为“swift\U指纹\u 0\u 2020.03.02\u 01.06.10.txt” 每次要访问文档文件夹时,都必须从
FileManager
获取该文件夹的URL,而且JSON显然是[String:Any]