투케이2K

530. (Android/Java) [jackson 라이브러리] - JsonNode 사용해 JSON 데이터 파싱 수행 실시 본문

Android

530. (Android/Java) [jackson 라이브러리] - JsonNode 사용해 JSON 데이터 파싱 수행 실시

투케이2K 2023. 4. 3. 23:33

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[소스 코드]

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

            /**
             * -------------------------------------
             * TODO [요약 설명]
             * -------------------------------------
             * 1. Jackson : Java Object 를 JSON으로 변환하거나 JSON 을 Java Object 로 변환하는데 사용할 수 있는 Java 라이브러리입니다
             * -------------------------------------
             * 2. 필요 라이브러리 설치 :
             *
             * implementation 'com.fasterxml.jackson.core:jackson-core:2.13.4'
             * implementation 'com.fasterxml.jackson.core:jackson-annotations:2.13.4'
             * implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.4'
             * -------------------------------------
             * 3. 참고 사이트 :
             *
             * https://github.com/FasterXML/jackson
             *
             * https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core
             * -------------------------------------
             * */

            // [샘플 JSON 선언 실시]
            String sample = "{\n" +
                    "  \"Name\" : \"투케이\",\n" +
                    "  \"Age\" : 30,\n" +
                    "  \"BookList\" : [\n" +
                    "    {\"idx\" : 1, \"Name\" : \"JAVA\"},\n" +
                    "    {\"idx\" : 2, \"Name\" : \"Android\"}\n" +
                    "  ]\n" +
                    "}";

            // [ObjectMapper 생성]
            ObjectMapper mapper = new ObjectMapper();

            // [JsonNode 생성]
            JsonNode jsonNode = mapper.readTree(sample);

            // [JSON 특정 key 값 읽기]
            String name = jsonNode.get("Name").asText();
            int age = jsonNode.get("Age").asInt();
            int book_0 = jsonNode.get("BookList").get(0).get("idx").asInt();
            int book_1 = jsonNode.get("BookList").get(1).get("idx").asInt();

            // [로그 출력 실시]
            S_Log.ltd("================================================");
            S_Log.cnt("["+ACTIVITY_NAME+" >> "+C_Util.getNowMethod(1)+" :: 로그 출력]");
            S_Log.cnt("[name :: "+name+"]");
            S_Log.cnt("[age :: "+age+"]");
            S_Log.cnt("[book_0 :: "+book_0+"]");
            S_Log.cnt("[book_1 :: "+book_1+"]");
            S_Log.lbd("================================================");
        }
        catch (Exception e){
            e.printStackTrace();
        }

[결과 출력]

 

D///===========//: ================================================
I/: [A_Intro >> onCreate :: 로그 출력]
I/: [name :: 투케이]
I/: [age :: 30]
I/: [book_0 :: 1]
I/: [book_1 :: 2]
D///===========//: ================================================

 

반응형
Comments