ios - 如何在swift 5中将.txt文件json读入字典
问题描述
嗨,我在以下结构中有一个 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”。
推荐阅读
- wordpress - 如何以编程方式从 woocommerce 中的购物车中删除所有税款
- reactjs - 传递道具和条件的简单有效的方式
- android - 将多个 ScanFilter 与 BluetoothLeScanner 一起使用是否安全?
- javascript - Rollup 将 Js 构建成 cjs 和 es 两个文件的原因是什么
- javascript - OpenLayers - 编辑功能(隐藏/显示,更改图标)
- elasticsearch - 在弹性搜索中将子项添加到父文档的嵌套字段中
- c++ - NE10库中FFT函数的输入范围是多少
- ios - 有没有办法为工业增强现实构建 iOS 应用程序?
- ios - 如何为 RadDataForm ListPicker 的选择器设置样式
- c# - 数组是否实现了 IEnumerable
?