如何快速使用Object Mapper将JSON字符串映射到模型类

时间:2018-08-07 03:11:06

标签: json swift model objectmapper

我的模型类是:

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"]
     }
 }

我有一个映射有模型类的对象。

var taskDetails: [CalendarTaskModel]?

由于我的对象是数组类型,所以我想使用ObjectMapper像下面的代码一样将JSON字符串映射到对象。

code 1: taskDetails = Mapper<[CalendarTaskModel]>().map(JSONString: jsonStr)
//
code 2: taskDetails = Mapper<CalendarTaskModel>().map(JSONString: jsonStr)

但是我遇到错误enter image description here && enter image description here,请提出解决方法? 预先感谢。

1 个答案:

答案 0 :(得分:2)

我知道了!您应该改用mapArray方法:

let jsonStr = ...
var taskDetails: [CalendarTaskModel]?
taskDetails = Mapper<CalendarTaskModel>().mapArray(JSONfile: jsonStr)

这是因为map方法没有返回数组。

对于您提供的代码1,[CalendarTaskModel]类型(相当于Array<CalendarTaskModel> 兼容该可映射协议。我怀疑可以实现它兼容,例如具有更复杂的逻辑,但是该库鼓励您使用我建议的方法。祝您好运!