Notice
Recent Posts
Recent Comments
Link
투케이2K
256. (kotlin/코틀린) [유틸 파일] jsonStringToMap : json 형식 문자열 데이터를 Map 으로 변환 실시 본문
Kotlin
256. (kotlin/코틀린) [유틸 파일] jsonStringToMap : json 형식 문자열 데이터를 Map 으로 변환 실시
투케이2K 2023. 4. 8. 22:52[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Kotlin
[소스 코드]
// ----------------------------------------------------------------------------------
// TODO [SEARCH FAST] : [RETURN] jsonStringToMap : json 형식 문자열 데이터를 Map 으로 변환 실시
// ----------------------------------------------------------------------------------
fun jsonStringToMap(json: String): Map<String, Any> {
/**
* // -----------------------------------------
* [jsonStringToMap 메소드 설명]
* // -----------------------------------------
* 1. json 형식 문자열 데이터를 Map 으로 변환 실시
* // -----------------------------------------
* 2. 호출 방식 :
// [샘플 JSON 선언 실시]
var json = "{\n" +
" \"Name\" : \"투케이\",\n" +
" \"Age\" : 30,\n" +
" \"BookList\" : [\n" +
" {\"idx\" : 1, \"Name\" : \"JAVA\"},\n" +
" {\"idx\" : 2, \"Name\" : \"Android\"},\n" +
" {\"idx\" : 3, \"Name\" : \"Kotlin\"}\n" +
" ],\n" +
" \"Hobby\" : {\"Name\" : \"Coding\"},\n" +
" \"Address\" : {\"Addr\" : [{\"Name\":\"yeoungju\"}, {\"Name\":\"seoul\"}]}\n" +
"}";
// [메소드 호출]
C_Util.jsonStringToMap(json)
* // -----------------------------------------
* 3. 리턴 데이터 : HashMap 객체
* // -----------------------------------------
* 4. 라이브러리 설치 : Gson
* // -----------------------------------------
* */
// [리턴 변수 선언]
var returnData :Map<String, Any> = HashMap<String, Any>()
var M_LOG = ""
// [로직 처리 실시]
try {
// [널 체크 수행 실시]
if (stringNotNull(json) == true) {
// [JSON 형식으로 파싱 가능 한지 확인]
if (stringJsonObjectEnable(json) == true) {
// [GSON 사용해 jsonString to Map 변환]
var gson = Gson()
var map = HashMap<String, Any>()
returnData = gson.fromJson(json, map.javaClass) as Map<String, Any>
// [로그 삽입]
M_LOG = "[SUCCESS] : JSON TO MAP"
} else {
M_LOG = "[ERROR] : JSON TYPE ERROR"
}
} else {
M_LOG = "[ERROR] : INPUT DATA IS NULL"
}
} catch (e: Exception) {
e.printStackTrace()
M_LOG = "[EXCEPTION] : " + e.message.toString()
}
// [로그 출력 실시]
//*
S_Log.ltd("================================================")
S_Log.cnt("[" + ACTIVITY_NAME + " >> " + getNowMethod(1) + " :: json 형식 문자열 데이터를 Map 으로 변환 실시]")
S_Log.cnt("-----------------------------------------")
S_Log.cnt("[INPUT :: $json]")
S_Log.cnt("-----------------------------------------")
S_Log.cnt("[M_LOG :: $M_LOG]")
S_Log.cnt("-----------------------------------------")
S_Log.cnt("[RETURN :: $returnData]")
S_Log.lbd("================================================")
// */
// [리턴 반환 실시]
return returnData
}
[결과 출력]
D///===========//: ================================================
I/: [C_Util >> jsonStringToMap :: json 형식 문자열 데이터를 Map 으로 변환 실시]
I/: -----------------------------------------
I/: [INPUT :: {
"Name" : "투케이",
"Age" : 30,
"BookList" : [
{"idx" : 1, "Name" : "JAVA"},
{"idx" : 2, "Name" : "Android"},
{"idx" : 3, "Name" : "Kotlin"}
],
"Hobby" : {"Name" : "Coding"},
"Address" : {"Addr" : [{"Name":"yeoungju"}, {"Name":"seoul"}]}
}]
I/: -----------------------------------------
I/: [M_LOG :: [SUCCESS] : JSON TO MAP]
I/: -----------------------------------------
I/: [RETURN :: {BookList=[{idx=1.0, Name=JAVA}, {idx=2.0, Name=Android}, {idx=3.0, Name=Kotlin}], Address={Addr=[{Name=yeoungju}, {Name=seoul}]}, Hobby={Name=Coding}, Age=30.0, Name=투케이}]
D///===========//: ================================================
반응형
'Kotlin' 카테고리의 다른 글
Comments