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

时间:2016-08-23 00:30:38

标签: ios json swift http objectmapper

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

class User: NSObject {

  var name = ""
  var phoneNumber = ""

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

}

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

1 个答案:

答案 0 :(得分:4)

是的,您可以使用MappingType枚举来处理此问题。它有两个值FromJSONToJSON,可用于创建逻辑来映射对象。

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