[英]How to read a .txt file json into dictionary in swift 5
嗨,我在以下結構中有一個 json
{
"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”的值
["aaaaaaaaaa","bbbbbbbbbb","cccccccccc","dddddddddd"]
我該怎么做呢?
我已經將完整的文件路徑傳遞給下面的函數,但它崩潰了
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_fingerprints_0_2020.03.02_01.06.10.txt”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.