Objectmapper: рдмрд╛рдЗрдирд░реА рдСрдкрд░реЗрдЯрд░ ')

рдХреЛ рдирд┐рд░реНрдорд┐рдд 8 рдорд╛рд░реНрдЪ 2017  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: tristanhimmelman/ObjectMapper

рдирдорд╕реНрддреЗ,
рдореИрдВ рдПрдХ рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬреЗрд╕рди рдореИрдк рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдПрдХ рдорд╛рди (рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ) рд╣реИ рдЬреЛ рд╣рдореЗрд╢рд╛ рд╢реВрдиреНрдп рд╣реЛрддрд╛ рд╣реИред

рдпрд╣ рдореЗрд░рд╛ рдЬреЗрд╕рди рдирдореВрдирд╛ рд╣реИ:

{"username":"user1","age":3}

рдФрд░ рдпрд╣ рдореЗрд░рд╛ рдХреЛрдб рд╣реИ:

class T1: Mappable {
    var username: String?
    var age: String?

    required init?(map: Map) {

    }

    // Mappable
    func mapping(map: Map) {

        let transform = TransformOf<Int, String>(fromJSON: { (value: String?) -> Int? in
            // transform value from String? to Int?
            return Int(value!)
        }, toJSON: { (value: Int?) -> String? in
            // transform value from Int? to String?
            if let value = value {
                return String(value)
            }
            return nil
        })

        username    <- map["username"]
        age <- (map["age"], transform)

    }
}

рдЪреВрдВрдХрд┐ рдЬреЗрд╕рди "" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ "рдЖрдпреБ" рд▓реМрдЯрд╛ рд░рд╣рд╛ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдордСрдл рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ "рдЖрдпреБ" рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдЪрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ (рдореИрдВ "рдЖрдпреБ" рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддрд╛ рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рдмрд╛рдж рд╕реЗ рдореИрдВ рджрд╛рдпрд░реЗ рдХрд╛ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝реВрдВрдЧрд╛ рдФрд░ рдореБрдЭреЗ рдЙрд╕ рдЪрд░ рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред

рд╡реИрд╕реЗ рднреА, рдореИрдВ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЗ рдХрд╛рд░рдг рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдЬрдм рдореИрдВ рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ:

рдмрд╛рдЗрдирд░реА рдСрдкрд░реЗрдЯрд░ '<-' рдХреЛ 'рд╕реНрдЯреНрд░рд┐рдВрдЧ' рдФрд░ '(рдореИрдк, рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдордСрдл' рдкреНрд░рдХрд╛рд░ рдХреЗ рдСрдкрд░реЗрдВрдб рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)'

рдореИрдВ рдЕрдкрдиреЗ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП TransformOf рдХрд╛ рд╕рд╣реА рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдзрдиреНрдпрд╡рд╛рдж

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@ adasoft-dev, рдЖрдк рд╡рд┐рдкрд░реАрдд рддрд░реАрдХреЗ рд╕реЗ рдХрд░ рд░рд╣реЗ рд╣реИрдВред TransformOf рдХреЛ TransformOf<Object, JSON> рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ String рдФрд░ Int рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред

let transform = TransformOf<String, Int>(
  fromJSON: { (value: Int?) -> String? in
    if let value = value {
      return String(value)
    } else {
      return nil
    }
  },
  toJSON: { (value: String?) -> Int? in
    if let value = value {
      return Int(value)
    } else {
      return nil
    }
  }
)

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

+1

@ adasoft-dev, рдЖрдк рд╡рд┐рдкрд░реАрдд рддрд░реАрдХреЗ рд╕реЗ рдХрд░ рд░рд╣реЗ рд╣реИрдВред TransformOf рдХреЛ TransformOf<Object, JSON> рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ String рдФрд░ Int рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред

let transform = TransformOf<String, Int>(
  fromJSON: { (value: Int?) -> String? in
    if let value = value {
      return String(value)
    } else {
      return nil
    }
  },
  toJSON: { (value: String?) -> Int? in
    if let value = value {
      return Int(value)
    } else {
      return nil
    }
  }
)

рдореЗрд░реА рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рд╣рдореЗрд╢рд╛ рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИ int рдкреНрд░рдХрд╛рд░ рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░ рд╣реИ, рдХрднреА-рдХрднреА рдорд╛рди рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХрдХреНрд╖рд╛ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкреНрд░рдХрд╛рд░ рдХреА рдХрд╛рдордирд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЗрд╕рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдорд╛рди рдкреНрд░рдХрд╛рд░ рдХреЛ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рддреЛ рдореБрдЭреЗ рдХрдХреНрд╖рд╛ рдореЗрдВ рдкреНрд░рдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Dbigshooter picture Dbigshooter  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mirzadelic picture mirzadelic  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

nashirox picture nashirox  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

delbyze picture delbyze  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

AashishSapkota picture AashishSapkota  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ