我有这段代码:
struct NoteRecord: Codable {
let id: String
let title: String
let detail: String?
let dueDate: String?
private enum CodingKeys: String, CodingKey {
case id, title, detail, dueDate
}}
并解析部分:
do {
let decoder = JSONDecoder()
let note = try decoder.decode(NoteRecord.self, from: data)
} catch let err {
print("Error occured:", err)
}
当REST API返回一个对象数组以正确地将数据解析为结构数组时,有没有办法使用它?
答案 0 :(得分:2)
是的,只需使用它:
do {
let decoder = JSONDecoder()
let notes = try decoder.decode([NoteRecord].self, from: data)
} catch let err {
print("Error occured:", err)
}
如果使用[YourCodableStruct].self
,则表示正在解析数组。如果使用YourCodableStruct.self
,则表示正在解析结构。
答案 1 :(得分:1)
您可以实现另一个结构来保存数组。
struct NoteRecords: Codable {
var list: [NoteRecord] // You should change the var name and coding keys
}
并解析它
let note = try decoder.decode(NoteRecords.self, from: data)
我希望这会有所帮助。