Notice
Recent Posts
Recent Comments
Link
투케이2K
249. (kotlin/코틀린) [유틸 파일] jsonGetAllKeyList : json 전체 key 값 출력 실시 본문
[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Kotlin
[소스 코드]
// ----------------------------------------------------------------------------------
// TODO [SEARCH FAST] : [RETURN] jsonGetAllKeyList : json 전체 key 값 출력 실시
// ----------------------------------------------------------------------------------
fun jsonGetAllKeyList(data: String): String {
/**
* // -----------------------------------------
* [jsonGetAllKeyList 메소드 설명]
* // -----------------------------------------
* 1. json 전체 key 값 출력 실시
* // -----------------------------------------
* 2. 호출 방식 :
*
* // [샘플 JSON 선언 실시]
* val json = "{\n" +
* " \"Name\":\"Craig\",\n" +
* " \"Age\":10,\n" +
* " \"BookInterests\":[\n" +
* " {\n" +
* " \"Book\":\"The Kite Runner\",\n" +
* " \"Author\":\"Khaled Hosseini\"\n" +
* " },\n" +
* " {\n" +
* " \"Book\":\"Harry Potter\",\n" +
* " \"Author\":\"J. K. Rowling\"\n" +
* " }\n" +
* " ],\n" +
* " \"FoodInterests\":{\n" +
* " \"Breakfast\":[\n" +
* " {\n" +
* " \"Bread\":\"Whole wheat\",\n" +
* " \"Beverage\":\"Fruit juice\"\n" +
* " },\n" +
* " {\n" +
* " \"Sandwich\":\"Vegetable Sandwich\",\n" +
* " \"Beverage\":\"Coffee\"\n" +
* " }\n" +
* " ]\n" +
* " }\n" +
* "}";
*
* C_Util.jsonGetAllKeyList(json)
*
* // -----------------------------------------
* 3. 리턴 데이터 : JSON 전체 key 값
*
* [Name, Age, BookInterests, Book, Author, Book, Author, FoodInterests, Breakfast, Bread, Beverage, Sandwich, Beverage]
* // -----------------------------------------
* 4. 라이브러리 설치 : jackson
* // -----------------------------------------
*/
// [리턴 변수 선언]
var returnData = ""
var M_LOG = ""
// [로직 처리 실시]
try {
// [널 체크 수행 실시]
if (stringNotNull(data) == true) {
// [JSON 형식으로 파싱 가능 한지 확인]
if (stringJsonObjectEnable(data) == true) {
val keys: MutableList<String> = ArrayList()
val mapper = ObjectMapper()
val jsonNode = mapper.readTree(data)
val jsonParser = jsonNode.traverse()
while (!jsonParser.isClosed) {
if (jsonParser.nextToken() == JsonToken.FIELD_NAME) {
keys!!.add(jsonParser.currentName)
}
}
// [리턴 변수에 삽입]
if (keys != null && keys.size > 0) {
M_LOG = "[SUCCESS] : JSON KEY LIST"
returnData = keys.toString()
} else {
M_LOG = "[ERROR] : KEY LIST SIZE NULL"
}
} 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 전체 key 값 확인 실시]")
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 >> jsonGetAllKeyList :: json 전체 key 값 확인 실시]
I/: -----------------------------------------
I/: [M_LOG :: [SUCCESS] : JSON KEY LIST]
I/: -----------------------------------------
I/: [RETURN :: [Name, Age, BookInterests, Book, Author, Book, Author, FoodInterests, Breakfast, Bread, Beverage, Sandwich, Beverage]]
D///===========//: ================================================
반응형
'Kotlin' 카테고리의 다른 글
Comments