투케이2K

215. (swift/xcode) [유틸 파일] getJsonKeyContains : JSON KEY 포함 확인 실시 - json to dictionary 본문

Swift

215. (swift/xcode) [유틸 파일] getJsonKeyContains : JSON KEY 포함 확인 실시 - json to dictionary

투케이2K 2024. 10. 18. 20:03

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT5

 

[소스 코드]

 

// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------

- 언어 : Swift5

- 개발 툴 : Xcode

- 구분 : 유틸 파일

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------

    // -----------------------------------------------------------------------------------------
    // MARK: - [JSON KEY 포함 확인 실시]
    // -----------------------------------------------------------------------------------------
    func getJsonKeyContains(json: String, keys:Array<String>) -> Bool {
        
        /*
        // -----------------------------------------
        [getJsonKeyContains 메소드 설명]
        // -----------------------------------------
        1. JSON KEY 포함 확인 실시
        // -----------------------------------------
        2. 호출 방법 : 
         
         let jsonData = "{\n" +
                         "  \"name\" : \"투케이\",\n" +
                         "  \"age\" : 29,\n" +
                         "  \"color\" : [\"red\", \"yellow\"]\n" +
                         "}"
         
         C_Util().getJsonKeyContains(json: jsonData, keys: ["name", "age"])
         
        // -----------------------------------------
        3. 리턴 반환 : JSON Key 값을 포함하는 경우 true / 포함하지 않는 경우 false
        // -----------------------------------------
        */
        

        // [초기 리턴 데이터 변수 선언 실시]
        var returnData = false
        var M_LOG = ""

        
        // [인풋 데이터 널 체크 수행 실시]
        if C_Util().stringNotNull(str: json) == true && C_Util().stringArrayNotNull(array_: keys) == true {

            do {

                // [JSON TO DIC 변환 수행]
                let dicCreate = try JSONSerialization.jsonObject(with: Data(json.utf8), options: []) as! [String:Any]
                

                // [for 문을 돌면서 다중 값 포함 확인 실시]
                for i in stride(from: 0, through: keys.count-1, by: 1) {
                   
                    if dicCreate.keys.contains(keys[i]) == false { // [특정 Key 값을 포함하지 않는 경우]
                        M_LOG += "[\(keys[i])] "
                    }

                }

                if C_Util().stringNotNull(str: M_LOG) == true { // [에러가 발생한 경우]
                    M_LOG = "[ERROR] : [NOT FOUND KEY] : " + M_LOG
                }
                else {
                    returnData = true
                    M_LOG = "[SUCCESS] : JSON KEY CONTAINS"
                }

            } catch {
                M_LOG = "[EXCEPTION] :: \(error.localizedDescription)"
            }
            
        }
        else {
            M_LOG = "[ERROR] :: INPUT DATA IS NULL"
        }
        

        // [로그 출력 실시]
        S_Log._D_(description: "JSON KEY 포함 확인 실시", data: [
            "INPUT [json] :: \(json)",
            "INPUT [keys] :: \(keys)",
            "INPUT [M_LOG] :: \(M_LOG)",
            "RETURN :: \(returnData)"
        ])
        

        // [리턴 데이터 반환 실시]
        return returnData
    }

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[결과 출력]
// --------------------------------------------------------------------------------------

================================================================
LOG :: TYPE :: LOG :: 🟢
-------------------------------------------------
LOG :: CLASS PLACE :: C_Util.swift :: getJsonKeyContains(json:keys:) :: 4501
-------------------------------------------------
LOG :: NOW TIME :: 2024-10-18 19:58:08
-------------------------------------------------
LOG :: DESCRIPTION :: JSON KEY 포함 확인 실시
-------------------------------------------------
LOG :: INPUT [json] :: {
  "name" : "투케이",
  "age" : 29,
  "color" : ["red", "yellow"]
}
-------------------------------------------------
LOG :: INPUT [keys] :: ["name", "age"]
-------------------------------------------------
LOG :: INPUT [M_LOG] :: [SUCCESS] : JSON KEY CONTAINS
-------------------------------------------------
LOG :: RETURN :: true
================================================================

// --------------------------------------------------------------------------------------

 

반응형
Comments