2017-03-02 8 views
0

私は素早く、マッピングのためにオブジェクトマッパーを使用しています。メッセージキーがjsonまたは文字列の配列である場合、どのようにマップできますか? JSON ReponsesiOS Swift:Object mapper条件付きマッピング

{ "エラー":{ "コード":404、 "メッセージ": "メッセージ"}}

{ "エラー":{ "コード":406 、 "メッセージ":[ "メッセージ" ]}}

私のクラス

class Response : NSObject, Mappable { 

    var code : Int? 
    var data : AnyObject? 
    var message : [String]? 


    required init?(map: Map) { 

    } 

    func mapping(map: Map) { 
     code <- map["code"] 
     data <- map["data"] 
     message <- map["messages"] 
    } 
} 

答えて

0

このようなトランスフォーメーション用のカスタムトランスフォームを作成することができます。

TransformTypeプロトコルに準拠したクラス、作成します。ただやる、あなたのマッピング機能で次に

class ErrorMessagesTransform: TransformType { 
    func transformFromJSON(_ value: Any?) -> Array<String>? { 
     if let value = value as? String { 
      return [value] 
     } 
     if let value = value as? [String] { 
      return value 
     } 
     return [] 
    } 

    func transformToJSON(_ value: Array<String>?) -> String? { 
     // TODO: If needed 
     return nil 
    } 
} 

を:

func mapping(map: Map) { 
    code <- map["code"] 
    data <- map["data"] 
    message <- (map["messages"], ErrorMessagesTransform()) 
} 
+0

おかげで多くのことを、私の一日保存 –