투케이2K

214. (swift/xcode) [유틸 파일] stringJsonArrayEnable : string 문자열 데이터 Json Array 형식으로 변경 가능 한지 체크 실시 본문

Swift

214. (swift/xcode) [유틸 파일] stringJsonArrayEnable : string 문자열 데이터 Json Array 형식으로 변경 가능 한지 체크 실시

투케이2K 2024. 7. 22. 19:21
반응형

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT5

 

[소스 코드]

    // -----------------------------------------------------------------------------------------
    // MARK: - [String 문자열 데이터 Json Array 형식으로 변경 가능 한지 체크 실시]
    // -----------------------------------------------------------------------------------------
    func stringJsonArrayEnable(str: String) -> Bool {
        
        /*
        // -----------------------------------------
        [stringJsonArrayEnable 메소드 설명]
        // -----------------------------------------
        1. String 문자열 데이터 Json Array 형식으로 변경 가능 한지 체크 실시
        // -----------------------------------------
        2. 호출 방법 :        
         
         C_Util().stringJsonArrayEnable(str: "투케이")

         C_Util().stringJsonArrayEnable(str: "1")

         C_Util().stringJsonArrayEnable(str: "[\"하나\", \"둘\"]")

         C_Util().stringJsonArrayEnable(str: "[{\"name\":\"twok\"}, {\"name\":\"투케이\"}]")
        // -----------------------------------------
        3. 리턴 반환 : Json Array 형식으로 변경 가능한 경우 true / 아닌 경우 false
        // -----------------------------------------
        */
        
        // [초기 리턴 데이터 변수 선언 실시]
        var returnData = false
        
        // [인풋 데이터 널 체크 수행 실시]
        if str != nil
            && str.count>0
            && str != ""
            && str.trimmingCharacters(in: .whitespacesAndNewlines) != ""
            && str.trimmingCharacters(in: .whitespacesAndNewlines) != "null"
            && str.trimmingCharacters(in: .whitespacesAndNewlines) != "undefined"
            && str.isEmpty == false {
                    
            do {
                // [JSON 데이터 확인 수행]
                var jsonData = try JSONSerialization.jsonObject(with: Data(str.utf8), options: []) as! Array<Any>
                
                // [리턴 결과 삽입 실시]
                returnData = true
            } catch {
                S_Log._D_(description: S_FinalData.LOG_BUG_STATE, data: [
                    "catch :: \(error.localizedDescription)"
                ])
            }
        }
        
        // [로그 출력 실시]
        S_Log._D_(description: "string 문자열 데이터 Json Array 형식으로 변경 가능 한지 체크 실시", data: [
            "INPUT :: \(str)",
            "RETURN :: \(returnData)"
        ])
        
        // [리턴 데이터 반환 실시]
        return returnData
    }
 

[결과 출력]

 

반응형
Comments