在补全中添加一个数据模型的字典:escaping

Add a dictionary of data model in the completion: escaping

我有一个从服务器获取的数据的数据模型

是其中的一部分(因为很长所以只复制了一部分)

public struct ExportUserDataModel: Decodable {

   public let username: String
   public let id: Int
   public let data: [Int]

...

然后,我们使用NSURLSeasson的自定义形式来获取数据

 public func fetchtExportCSV(id: Int, completion: @escaping Result<[ExportUserDataModel]>.Completion) {
      let request = userRequest.export(id: id)
       requestProvider.execute([ExportUserDataModel].self, request: request, on: .main) { result in
          switch result {
          case .success(let object):
             completion(.success(object))
          case .error(let error):
             logger.error(.response, error)
             completion(.error(error))
          }
       }
    }

在这里,如果数据以数组的形式出现,它就可以正常工作。但是要知道,数据来自字典 类似的东西

{
  "username" : "Dubbeloo",
  "id" : 12869,
  "data" : [
    [
      1904
    ],
    [
      1928
    ]
}

我的问题是,我如何使用在提取函数中添加数据来获取字典,现在是数组 [ExportUserDataModel][ExportUserDataModel].self

提前感谢您的帮助

改变这个

requestProvider.execute([ExportUserDataModel].self, request: request, on: .main) { result in

requestProvider.execute(ExportUserDataModel.self, request: request, on: .main) { result in

如果您需要同时支持两者,请检查数据转换结果或

do {
      // decode an array 
   }
    catch {
       // decode a dictionary 
    }