2016-08-25 2 views
0

Мне нужно отобразить следующий JSon с AlamofireObjectMapper:Отображение объектов в Root Json возвращение нулевой

{ 
    "user": { 
    "id": 2, 
    "first_name": "Dealer", 
    "last_name": "Seller", 
    "email": "[email protected]", 
    "authentication_token": "L6HzhZWdWhtxNwVkrsjY", 
    "documents_uploaded": false, 
    "type": "Dealer" 
    } 
} 

Я написал следующую часть кода, но переведенный возврата объекта ноль!

class SystemUser:Mappable{  
    func mapping(map: Map) { 
     type <- map[SystemUserIdentifiers.UserType] //"type" 
     firstName <- map[SystemUserIdentifiers.FirstName] 
     lastName <- map[SystemUserIdentifiers.LastName] 
     internalIdentifier <- map[SystemUserIdentifiers.InternalIdentifier] 
     email <- map[SystemUserIdentifiers.Email] 
     documentsUploaded <- map[SystemUserIdentifiers.DocumentsUploaded] 
     authenticationToken <- map[SystemUserIdentifiers.AuthenticationToken] 
    } 
} 

Вот отправив запрос на почту:

Alamofire.request(.POST, URL, parameters: parameters, encoding: .JSON).responseObject { 
      (response: Response<SystemUser, NSError>) in 

guard let user = response.result.value else{ 
       return 
      } 
print(user.authenticationToken) 
} 

Что такое правильный способ отображения укоренились JSon?

ответ

0

Думаю, вам нужно будет сделать два отображаемых объекта; один для ответа и другой для пользователя; как

//Response 
class ServerResponse:Mappable{ 
    var user: SystemUser?  
    func mapping(map: Map) { 
     user <- map["user"] 
    } 
} 

-

//User class 
class SystemUser:Mappable{ 
    var type:String? 
    var firstName:String? 
    var lastName:String? 
    // ... Further properties 

    func mapping(map: Map) { 
     type <- map["type"] //"type" 
     firstName <- map["first_name"] 
     lastName <- map["last_name"] 
     // ... Further properties 
    } 
} 

и теперь

Alamofire.request(.POST, URL, parameters: parameters, encoding: .JSON).responseObject { 
      (response: Response<ServerResponse, NSError>) in 
    print(response.user?.authenticationToken) 

    //Do your work here 


} 

Другой вариант заключается в том, что вы спросите разработчика бэкэнд удалить этот ключ пользователя и передавать данные в одном словаре

Смежные вопросы