如何在序列化期间排除ObjectMapper中的字段?

Jul*_* B. 4 json http ios swift objectmapper

所以我有一个简单的类,如下所示:

class User: NSObject {

  var name = ""
  var phoneNumber = ""

  override func mapping(map: Map) {
    super.mapping(map)
    name          <- map["name"]
    phoneNumber   <- map["phoneNumber"]
  }

}
Run Code Online (Sandbox Code Playgroud)

JSON包含这些字段的响应转换为对象时,这非常有用。但是我想在序列化回时排除一个字段JSON。我怎样才能做到这一点?假设我只想发送name和忽略phoneNumber。这可能吗?似乎是一个非常合理的用例,但是我还没有找到解决方案。

小智 5

是的,这是可能的,您可以使用MappingType枚举来处理。它有两个值,FromJSON并且ToJSON你可以用它来创建逻辑映射你的对象。

override func mapping(map: Map) {
    super.mapping(map)
    if map.mappingType == MappingType.FromJSON {
        name          <- map["name"]
        phoneNumber   <- map["phoneNumber"]
    } else {
        name          <- map["name"]
    }
}
Run Code Online (Sandbox Code Playgroud)