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
+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.
Komentar yang paling membantu
@adasoft-dev, yang Anda lakukan sebaliknya.
TransformOf
didefinisikan sebagaiTransformOf<Object, JSON>
yang sesuai denganString
danInt
.