可能从JSON数据对象解码的Codable结构数组

时间:2018-05-18 13:52:41

标签: ios json swift

我有这段代码:

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返回一个对象数组以正确地将数据解析为结构数组时,有没有办法使用它?

2 个答案:

答案 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)

我希望这会有所帮助。