투케이2K

257. (kotlin/코틀린) [유틸 파일] jsonPrettyPrint : json 형식 문자열 데이터 GSON 정렬 출력 본문

Kotlin

257. (kotlin/코틀린) [유틸 파일] jsonPrettyPrint : json 형식 문자열 데이터 GSON 정렬 출력

투케이2K 2023. 4. 8. 23:17

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

        // ----------------------------------------------------------------------------------
        // TODO [SEARCH FAST] : [VOID] jsonPrettyPrint : json 형식 문자열 데이터 GSON 정렬 출력
        // ----------------------------------------------------------------------------------
        fun jsonPrettyPrint(json: String): String {

            /**
             * // -----------------------------------------
             * [jsonPrettyPrint 메소드 설명]
             * // -----------------------------------------
             * 1. json 형식 문자열 데이터 GSON 정렬 출력
             * // -----------------------------------------
             * 2. 호출 방식 :

            // [샘플 JSON 선언 실시]
            var jsonObject = JSONObject();
            jsonObject.put("name", "twok");
            jsonObject.put("age", "29");


            // [메소드 호출]
            C_Util.jsonPrettyPrint(jsonObject.toString())

             * // -----------------------------------------
             * 3. 리턴 데이터 : JSON 정렬 데이터
             * // -----------------------------------------
             * 4. 라이브러리 설치 : Gson
             * // -----------------------------------------
             * */


            // [리턴 변수 선언]
            var returnData = ""
            var M_LOG = ""


            // [로직 처리 실시]
            try {

                // [널 체크 수행 실시]
                if (stringNotNull(json) == true) {

                    // [JSON 형식으로 파싱 가능 한지 확인]
                    if (stringJsonObjectEnable(json) == true) {

                        // [JSON 으로 변환 실시]
                        val jsonObject = JSONObject(json)

                        // [JSON TO MAP 변환 실시 : nameValuePairs 이슈]
                        val map: Map<String, Any> = jsonStringToMap(jsonObject.toString())

                        // [GSON 사용해 jsonString to Map 변환]
                        val gson = Gson().newBuilder().setPrettyPrinting().create()
                        returnData = gson.toJson(map)

                        // [로그 삽입]
                        M_LOG = "[SUCCESS] : JSON PRINT"

                    } 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 형식 문자열 데이터 GSON 정렬 출력]")
            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]")
            S_Log.cnt("-----------------------------------------")
            S_Log.cnt("$returnData")
            S_Log.lbd("================================================")
            // */


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

[결과 출력]

 

D///===========//: ================================================
I/: [C_Util >> jsonPrettyPrint :: json 형식 문자열 데이터 GSON 정렬 출력]
I/: -----------------------------------------
I/: [INPUT :: {"name":"twok","age":"29"}]
I/: -----------------------------------------
I/: [M_LOG :: [SUCCESS] : JSON PRINT]
I/: -----------------------------------------
I/: [RETURN]
I/: -----------------------------------------
I/: {
      "name": "twok",
      "age": "29"
    }
D///===========//: ================================================

 

반응형
Comments