在补全中添加一个数据模型的字典: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
}
我有一个从服务器获取的数据的数据模型
是其中的一部分(因为很长所以只复制了一部分)
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
}