序列化

JSON

ModelMapper(模型映射)

ObjectMapper

ObjectMapper can be added to your project using CocoaPods 0.36 or later by adding the following line to your Podfile:

pod 'ObjectMapper', '~> 1.1'

If you’re using Carthage you can add a dependency on ObjectMapper by adding it to your Cartfile:

github "Hearst-DD/ObjectMapper" ~> 1.1

为了支持这种映射,一个类或者结构体必须实现 Mappable 这个接口。

public protocol Mappable {
    init?(_ map: Map)
    mutating func mapping(map: Map)
}

ObjectMapper 使用<-操作符来定义如何将属性从 JSON 映射到对象:

class User: Mappable {
    var username: String?
    var age: Int?
    var weight: Double!
    var array: [AnyObject]?
    var dictionary: [String : AnyObject] = [:]
    var bestFriend: User?                       // Nested User object
    var friends: [User]?                        // Array of Users
    var birthday: NSDate?

    required init?(_ map: Map) {

    }

    // Mappable
    func mapping(map: Map) {
        username    <- map["username"]
        age         <- map["age"]
        weight      <- map["weight"]
        array       <- map["arr"]
        dictionary  <- map["dict"]
        bestFriend  <- map["best_friend"]
        friends     <- map["friends"]
        birthday    <- (map["birthday"], DateTransform())
    }
}

struct Temperature: Mappable {
    var celsius: Double?
    var fahrenheit: Double?

    init?(_ map: Map) {

    }

    mutating func mapping(map: Map) {
        celsius     <- map["celsius"]
        fahrenheit  <- map["fahrenheit"]
    }
}
上一页