2016-08-23 5 views
1

은 그래서 간단한 클래스 다음과 같이 있습니다 : 객체에이 필드를 포함하는 JSON 응답을 켤 때직렬화 중에 ObjectMapper의 필드를 제외하는 방법은 무엇입니까?

class User: NSObject { 

    var name = "" 
    var phoneNumber = "" 

    override func mapping(map: Map) { 
    super.mapping(map) 
    name   <- map["name"] 
    phoneNumber <- map["phoneNumber"] 
    } 

} 

이 잘 작동합니다. 그러나 JSON로 다시 직렬화 할 때 필드를 제외하고 싶습니다. 어떻게해야합니까? name 만 보내고 phoneNumber은 생략한다고 가정 해 보겠습니다. 이것이 가능한가? 꽤 합리적인 유스 케이스처럼 보이지만 솔루션을 찾을 수 없었습니다.

답변

3

예 가능합니다.이 문제를 처리하려면 열거 형 MappingType을 사용할 수 있습니다. 객체를 매핑하는 로직을 생성하는 데 사용할 수있는 두 개의 값인 FromJSONToJSON이 있습니다.

override func mapping(map: Map) { 
    super.mapping(map) 
    if map.mappingType == MappingType.FromJSON { 
     name   <- map["name"] 
     phoneNumber <- map["phoneNumber"] 
    } else { 
     name   <- map["name"] 
    } 
} 
+0

와우 이것이 내가 필요한 것입니다! 정말 고마워. 도대체 도대체 어디있는거야? 나는 어디에도 그것을 보지 못했다고 맹세한다. –

+0

문서에 있다면 잘 모르겠다. 몇 달 전에 시나리오와 똑같이하고 속성을 가지고 놀고 싶다. –

관련 문제