如何在 swift 中使用对象映射器将 JSON 字符串映射到模型 class
How to map JSON String to model class using Object Mapper in swift
我的模型 class 是这样的:
class CalendarTaskModel: Mappable {
var kpiColor: String?
var kpi: String?
var date: String?
required init?(map: Map) {
//Code here
}
func mapping(map: Map) {
kpiColor <- map["kpiColor"]
kpi <- map["kpi"]
date <- map["date"]
}
}
我有一个映射到模型的对象 class。
var taskDetails: [CalendarTaskModel]?
因为我的对象是数组类型,所以我想像下面的代码一样使用 ObjectMapper 将 JSON 字符串映射到对象。
code 1: taskDetails = Mapper<[CalendarTaskModel]>().map(JSONString: jsonStr)
//
code 2: taskDetails = Mapper<CalendarTaskModel>().map(JSONString: jsonStr)
但我收到错误 && 请建议如何执行此操作?
提前致谢。
我想通了!您应该改用 mapArray
方法:
let jsonStr = ...
var taskDetails: [CalendarTaskModel]?
taskDetails = Mapper<CalendarTaskModel>().mapArray(JSONfile: jsonStr)
这是因为 map
方法没有 return 数组。
至于您提供的代码 1,[CalendarTaskModel]
类型(相当于 Array<CalendarTaskModel>
不 符合该可映射协议。我怀疑它可以使其符合要求,例如使用更复杂的逻辑,但图书馆鼓励您使用我建议的方法。祝您好运!
我的模型 class 是这样的:
class CalendarTaskModel: Mappable {
var kpiColor: String?
var kpi: String?
var date: String?
required init?(map: Map) {
//Code here
}
func mapping(map: Map) {
kpiColor <- map["kpiColor"]
kpi <- map["kpi"]
date <- map["date"]
}
}
我有一个映射到模型的对象 class。
var taskDetails: [CalendarTaskModel]?
因为我的对象是数组类型,所以我想像下面的代码一样使用 ObjectMapper 将 JSON 字符串映射到对象。
code 1: taskDetails = Mapper<[CalendarTaskModel]>().map(JSONString: jsonStr)
//
code 2: taskDetails = Mapper<CalendarTaskModel>().map(JSONString: jsonStr)
但我收到错误
我想通了!您应该改用 mapArray
方法:
let jsonStr = ...
var taskDetails: [CalendarTaskModel]?
taskDetails = Mapper<CalendarTaskModel>().mapArray(JSONfile: jsonStr)
这是因为 map
方法没有 return 数组。
至于您提供的代码 1,[CalendarTaskModel]
类型(相当于 Array<CalendarTaskModel>
不 符合该可映射协议。我怀疑它可以使其符合要求,例如使用更复杂的逻辑,但图书馆鼓励您使用我建议的方法。祝您好运!