Notice
Recent Posts
Recent Comments
Link
투케이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
================================================================
// --------------------------------------------------------------------------------------
반응형
'Swift' 카테고리의 다른 글
Comments