支持 Swift 3.0
支持 String、Dictionary、Array、URL、Bool、Int64、NSInteger、Double、Float、NSNumber 等数据类型的解析
支持内嵌模型和内嵌模型数组的解析,支持映射
目前不支持 Int8、Int16、Int32、uint、UInt8、UInt16、UInt32 类型
在声明基本数据类型如 int 时,需要实例化如 var intValue:Int = 0,不能直接 var intValue:Int?,否则无法获取该属性
字典
let dic = ["intValue":222,
"name":"哟哟",
"url":"http://baidu.com",
"age":"22222",
"boolValue":222,
"nsinter":222,
"doubleValue":222,
"floatValue":222,
"floatValue1":222,
"floatValue2":222,
"numberValue":222,
"dic":["hah":"哈哈"],
"arr":[1,2,3,4,5],
"str":["name":"嘻嘻","age":40],
"arrModel":[
["name":"嘻嘻1","age":401],
["name":"嘻嘻2","age":403],
["name":"嘻嘻3","age":404]]]
模型
class Use: NSObject {
var name:String?
var url:NSURL?
var age = 0
var boolValue:Bool = false
var intValue:Int64 = 0
var nsinter:NSInteger = 0
var doubleValue:Double = 0
var floatValue:Float = 0
var floatValue1:Float32 = 0
var floatValue2:Float64 = 0
var numberValue:NSNumber = 0
var int64:Int64 = 4444
var dic:NSDictionary?
var arr:NSArray?
}
解析转换
let use = Use.modelWithDic(dic: dic as Dictionary<String, AnyObject>) as! Use
字典
let dic = ["schoolName":"深圳大学",
"place":"深圳",
"schoolAge":"32",
"student":["name":"嘻嘻","age":40],
"arrModel":[
["name":"嘻嘻1","age":401],
["name":"嘻嘻2","age":403],
["name":"嘻嘻3","age":404]]]
模型
class School: NSObject {
var schoolName:String?
var place:String?
var schoolAge = 0
var student:Student?
var arrModel:Array<Student>?
override class func objectClassMapper() -> [String:String] {
return ["arrModel":"Student"]
}
}
class Student: NSObject {
var name:String?
var age = 0
}
解析转换
let school = School.modelWithDic(dic: dic as Dictionary<String, AnyObject>) as! School
在使用映射时,需要在内置模型中重写以下两个方法,自行选择
//内嵌数组模型映射[propertyName:key]
class func objectClassMapper() -> [String:String] {
return [:]
}
//key映射[propertyName:claName]
class func keyMapper() -> [String:String] {
return [:]
}
字典
let dic = ["string":"mapperString",
"int":"1111",
"student":["name":"嘻嘻","age":40],
"arrModel":[
["schoolName":"深圳大学",
"place":"深圳",
"schoolAge":"32",
"student":["name":"嘻嘻","age":40],
"arrModel":[
["name":"嘻嘻1","age":401],
["name":"嘻嘻2","age":403],
["name":"嘻嘻3","age":404]]],
["schoolName":"深圳大学",
"place":"深圳",
"schoolAge":"32",
"student":["name":"嘻嘻","age":40],
"arrModel":[
["name":"嘻嘻1","age":401],
["name":"嘻嘻2","age":403],
["name":"嘻嘻3","age":404]]],
["schoolName":"深圳大学",
"place":"深圳",
"schoolAge":"32",
"student":["name":"嘻嘻","age":40],
"arrModel":[
["name":"嘻嘻1","age":401],
["name":"嘻嘻2","age":403],
["name":"嘻嘻3","age":404]]]]]
模型
class Mapper: NSObject {
var mapperString:String?
var mapperInt = 0
var mapperClass:Student?
var mapperModelArray:Array<School>?
override class func keyMapper() -> [String:String] {
return ["mapperString":"string",
"mapperInt":"int",
"mapperClass":"student",
"mapperModelArray":"arrModel"]
}
override class func objectClassMapper() -> [String:String] {
return ["mapperModelArray":"School"]
}
}
class School: NSObject {
var schoolName:String?
var place:String?
var schoolAge = 0
var student:Student?
var arrModel:Array<Student>?
override class func objectClassMapper() -> [String:String] {
return ["arrModel":"Student"]
}
}
class Student: NSObject {
var name:String?
var age = 0
}
解析转换
let mapper = Mapper.modelWithDic(dic: dic as Dictionary<String, AnyObject>)
字典
let array = [
["name":4444,"age":401],
["name":"嘻嘻2","age":403],
["name":"嘻嘻3","age":404],
["name":"嘻嘻1","age":401],
["name":"嘻嘻2","age":403],
["name":"嘻嘻3","age":404],
["name":"嘻嘻1","age":401],
["name":"嘻嘻2","age":403],
["name":"嘻嘻3","age":404]]
模型
class Student: NSObject {
var name:String?
var age = 0
}
解析转换
let modelArray = Student.modelWithArray(array: array as Array<AnyObject>) as! Array<Student>