如何在序列化过程中排除 ObjectMapper 中的字段?

How to exclude fields in ObjectMapper during serialization?

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

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。这可能吗?似乎是一个非常合理的用例,但我还没有设法找到解决方案。

是的,这是可能的,您可以使用 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"]
    }
}