Objectmapper: Operator biner ')

Dibuat pada 8 Mar 2017  ·  3Komentar  ·  Sumber: tristanhimmelman/ObjectMapper

Hai,
Saya mencoba memetakan json ke objek, dan ada nilai (integer) yang selalu nihil.

Ini sampel json saya:

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

Dan ini kode saya:

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)

    }
}

Karena json mengembalikan "usia" tanpa menggunakan "" Saya mencoba mengubahnya menjadi String menggunakan fungsi transformOF, jadi saya dapat menyimpannya dalam variabel "usia" dari tipe string (saya tidak dapat mengubah tipe "usia" ke Int, karena mengikuti saya akan menambahkan dukungan ranah dan saya membutuhkan variabel itu untuk menjadi String).

Bagaimanapun, saya tidak dapat mengkompilasi proyek, karena kesalahan ini ketika saya mencoba menerapkan fungsi transformasi:

Operator biner '<-' tidak dapat diterapkan ke operan bertipe 'String' dan '(Peta, TransformOf)'

Bagaimana saya bisa menggunakan TransformOf dengan benar untuk mengonversi bilangan bulat saya menjadi string?

Terima kasih

Komentar yang paling membantu

@adasoft-dev, yang Anda lakukan sebaliknya. TransformOf didefinisikan sebagai TransformOf<Object, JSON> yang sesuai dengan String dan 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
    }
  }
)

Semua 3 komentar

+1

@adasoft-dev, yang Anda lakukan sebaliknya. TransformOf didefinisikan sebagai TransformOf<Object, JSON> yang sesuai dengan String dan 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
    }
  }
)

Saya memiliki masalah yang sama. Server selalu mengembalikan nilainya adalah tipe int atau tipe string, terkadang nilainya diubah, jadi saya berharap tipe yang ditentukan di kelas, tipe nilai dalam string json dapat diubah. JADI saya tidak perlu mengubah tipe di kelas.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

maksTheAwesome picture maksTheAwesome  ·  4Komentar

liltimtim picture liltimtim  ·  3Komentar

YunyueLin picture YunyueLin  ·  3Komentar

jperera84 picture jperera84  ·  4Komentar

VictorAlbertos picture VictorAlbertos  ·  3Komentar