【发布时间】:2018-05-25 19:56:48
【问题描述】:
我正在尝试在 Swift 4.1 中使用 JSON 解码器,但我不断得到
“无法读取数据,因为格式不正确”
我不知道为什么。我从Bundle.main.path 调用一个JSON 文件,然后在URL(fileURLWithPath:) 调用它后将其设置为一个变量。
查看文件路径并在本地打开,似乎JSON数据格式正确。在我的 data.json 文件中,数据是这样设置的。
{
"plant": "1015",
"name": "SPEEDVALE",
"key": "5035",
}
我有一个看起来像这样的结构
struct AllData: Decodable {
let plant: String
let name: String
let key: String
}
然后我有一个声明为 this 的变量
private var x: [AllData] = []
然后解码的代码块是这样的
do {
let path = Bundle.main.path(forResource: "data", ofType: "json")
let jsonData = try Data(contentsOf: URL(fileURLWithPath: path!))
do {
plantDataSerialized = try [JSONDecoder().decode(AllData.self, from: jsonData)]
print(plantDataSerialized)
} catch let error{
print(error.localizedDescription)
}
} catch let error {
print(error.localizedDescription)
}
【问题讨论】:
-
“无法读取数据,因为它的格式不正确”是什么意思?
-
这只是控制台中出现的错误。当我调试时它进入第一个 catch let 错误范围
-
我已经执行了你的代码并给出了正确的结果 [__lldb_expr_69.AllData(plant: "1015", name: "SPEEDVALE", key: "5035")]
-
@SamaBalaYam 你能告诉我在控制台中读取文件后如何显示数据吗?我也试图弄清楚这一点。
-
像 private var x: [AllData] = [] ...... ..... x = try [JSONDecoder().decode(AllData.self, from: jsonData) ] 打印(x)
标签: swift swift4 jsondecoder