투케이2K

192. (swift5/xcode) [ObjectMapper] Mapper map 을 사용해 json 데이터를 모델 객체에 매핑 수행 본문

Swift

192. (swift5/xcode) [ObjectMapper] Mapper map 을 사용해 json 데이터를 모델 객체에 매핑 수행

투케이2K 2023. 12. 10. 17:58

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT5

 

[소스 코드]

    // -----------------------------------------------------------------------------------------
    // MARK: - [클래스 정의]
    // -----------------------------------------------------------------------------------------
    class User: Mappable {
        
        var username: String?
        var age: Int?
        var weight: Double!

        required init?(map: Map) {

        }

        // Mappable
        func mapping(map: Map) {
            username    <- map["UserNm"]
            age         <- map["Age"]
            weight      <- map["Weight"]
        }
    }
    
    
    
    
    // -----------------------------------------------------------------------------------------
    // MARK: - [테스트 메인 함수 정의 실시]
    // -----------------------------------------------------------------------------------------
    func testMain() {
        S_Log._D_(description: "테스트 함수 시작 실시", data: nil)
        
        
        /*
         ------------------------------------
         [요약 설명]
         ------------------------------------
         1. ObjectMapper 는 모델 객체 (클래스 및 구조체) 를 JSON 으로 쉽게 변환해주는 라이브러리 입니다
         ------------------------------------
         2. ObjectMapper 는 JSON 을 객체에 매핑 또는 객체를 JSON 에 매핑 시 쉽게 사용할 수 있도록 도움을 줍니다
         ------------------------------------
         3. 필요 import :
         
         import ObjectMapper
         ------------------------------------
         4. 라이브러리 설치 참고 사이트 :
         
         https://blog.naver.com/kkh0977/223288362842
         https://github.com/tristanhimmelman/ObjectMapper
         ------------------------------------
         */
        
        
        // [로직 처리 실시]
        DispatchQueue.main.async {
            
            
            // [json 문자열 생성]
            let json = """
            {
                "UserNm": "Twok",
                "Age": 30,
                "Weight": 60.5
            }
            """
            
            
            // [json 데이터를 user 객체에 매핑]
            if let user = Mapper<User>().map(JSONString: json) {
                S_Log._D_(description: "로그 출력 수행", data: [
                    "username :: \(user.username)",
                    "age :: \(user.age)",
                    "weight :: \(user.weight)"
                ])
            }
            
        }

    }
 

[결과 출력]

 

 
반응형
Comments