Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to exclude fields in ObjectMapper during serialization?

So I have a simple class like the following:

class User: NSObject {

  var name = ""
  var phoneNumber = ""

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

}

This works great when turning a JSON response that contains these fields into an object. However i would like to exclude a field when serializing back to JSON. How can I do that? Let's say I would only like to send name and omit phoneNumber. Is this possible? Seems like a pretty reasonable use case, but I haven't managed to find a solution 😔.

like image 946
Julian B. Avatar asked Aug 23 '16 00:08

Julian B.


1 Answers

Yes it is possible, you could use MappingType enum to handle this. It has two values FromJSON and ToJSON which you could use to create logic to map your object.

override func mapping(map: Map) {
    super.mapping(map)
    if map.mappingType == MappingType.FromJSON {
        name          <- map["name"]
        phoneNumber   <- map["phoneNumber"]
    } else {
        name          <- map["name"]
    }
}
like image 117
seto nugroho Avatar answered Sep 28 '22 08:09

seto nugroho