Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Root: Mappable {
- var childs = [MyClass]()
- required convenience init?(map: Map) {
- self.init()
- }
- func mapping(map: Map) {
- childs <- (map["childs"], ArrayTranform<MyClass>())
- }
- }
- class MyClass: Mappable {
- var ident: String?
- var code: String?
- var name: String?
- var child: [MyClass] = []
- required convenience init?(map: Map) {
- self.init()
- }
- func mapping(map: Map) {
- ident <- map["ident"]
- code <- map["code"]
- name <- map["name"]
- child <- (map["childs"], MyClassTransform<MyClass>())
- }
- }
- class ArrayTranform<T: Mappable>: TransformType {
- func transformToJSON(_ value: Object?) -> JSON? {
- return value?.flatMap { $0.toJSON() }
- }
- func transformFromJSON(_ value: Any?) -> [T]? {
- if let childs = Mapper<T>().mapArray(JSONObject: value) {
- return childs
- }
- return []
- }
- typealias Object = [T]
- typealias JSON = Array<Any>
- }
- class MyClassTransform<T: MyClass>: TransformType {
- func transformToJSON(_ value: Object?) -> JSON? {
- return value?.flatMap { $0.toJSON() }
- }
- func transformFromJSON(_ value: Any?) -> [T]? {
- var array = [T]()
- if let dictionary = value as? [String: Any] {
- for childID in dictionary.keys {
- if let child = Mapper<T>().map(JSONObject: dictionary[childID]) {
- child.ident = childID
- array.append(child)
- }
- }
- }
- return array
- }
- typealias Object = [T]
- typealias JSON = Array<Any>
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement