2016-08-23 20 views
1

だから私は、次のような単純なクラスを持っている:シリアル化中に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を省略したいとします。これは可能ですか?かなり合理的なユースケースのようだが、私は解決策を見つけることができなかった。

答えて

3

はい、これを処理するにはMappingType enumを使用できます。オブジェクトをマップするロジックを作成するために使用できる2つの値FromJSONToJSONがあります。

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

これはまさに私が必要なものです。本当にありがとう。地獄は文書のどこにあるの?私はどこにも見なかったことを誓う。 –

+0

これはドキュメントになっているかどうか分かりませんが、数ヶ月前に自分のシナリオのようにしてそのプロパティで再生したいときに見つけました。 –

関連する問題