투케이2K

93. (TWOK/ALGORITHM) [Java] 문법 - GSON 사용해 VO 클래스 객체 매핑 및 JSON 생성 , 파싱 수행 본문

투케이2K 알고리즘

93. (TWOK/ALGORITHM) [Java] 문법 - GSON 사용해 VO 클래스 객체 매핑 및 JSON 생성 , 파싱 수행

투케이2K 2023. 1. 24. 11:09
반응형

[환경 설정 및 설명]

언어 : Java

설 명 : 문법 - GSON 사용해 VO 클래스 객체 매핑 및 JSON 생성 , 파싱 수행

 

[실행 : 소스 코드]

package com.example.testapp;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class Test {

    public static void main(String[] args){
        System.out.println("[Program Start]");
        System.out.println("");

        // ===================================


        // TODO [설치 필요한 의존성 패키지]
        // implementation 'com.google.code.gson:gson:2.8.6'


        // ===================================


        // TODO [GSON 사용해 VO 객체를 JSON 으로 변환 실시]

        // [List Map 객체 선언 및 데이터 삽입]
        ArrayList<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>();
        for(int i=1; i<=3; i++) {
            // [Map 객체 생성 및 데이터 생성]
            Map<String, Object> map = new HashMap<String, Object>();
            map.put(String.valueOf(i + "_key"), i + "_value");

            // [List Map 에 배열에 데이터 삽입 실시]
            listMap.add(map);
        }


        // [VO 객체 생성 실시]
        UserVO Create_UserVO = new UserVO("투케이", 29, listMap);


        // [GSON 객체 선언 실시]
        Gson create_gson = new Gson(); // [일반 GSON 생성]
        //Gson create_gson = new GsonBuilder().setPrettyPrinting().create(); // [PrettyPrinting 옵션을 추가 데이터 이쁘게 출력]


        // [GSON 사용해 json 형식 데이터 생성 실시]
        String jsonString = create_gson.toJson(Create_UserVO);


        // [JSON 생성 결과 출력 실시]
        System.out.println("[JSON 생성] jsonString : " + jsonString);
        System.out.println("");


        // ===================================


        // TODO [GSON 사용해 JSON 데이터를 VO 객체에 매핑 수행 실시]

        String sampleJson = "{\n" +
                "  \"name\": \"TWOK\",\n" +
                "  \"age\": 29,\n" +
                "  \"listMap\": [\n" +
                "    {\n" +
                "      \"1_test_key\": \"1_test_value\"\n" +
                "    },\n" +
                "    {\n" +
                "      \"2_test_key\": \"2_test_value\"\n" +
                "    },\n" +
                "    {\n" +
                "      \"3_test_key\": \"3_test_value\"\n" +
                "    }\n" +
                "  ]\n" +
                "}";


        // [GSON 객체 선언 실시]
        Gson parsing_gson = new Gson(); // [일반 GSON 생성]
        //Gson parsing_gson = new GsonBuilder().setPrettyPrinting().create(); // [PrettyPrinting 옵션을 추가 데이터 이쁘게 출력]


        // [JSON 데이터를 VO 객체에 매핑 실시]
        UserVO Parsing_UserVO = parsing_gson.fromJson(sampleJson, UserVO.class);


        // [UserVO 객체 전체 데이터 출력 실시]
        System.out.println("[JSON 파싱] Parsing_UserVO : " + Parsing_UserVO);
        System.out.println("");


        // [UserVO 객체 개별 데이터 확인 실시]
        System.out.println("[JSON 파싱] getName : " + Parsing_UserVO.getName());
        System.out.println("");


        // [UserVO 객체 개별 데이터 확인 실시]
        System.out.println("[JSON 파싱] getAge : " + Parsing_UserVO.getAge());
        System.out.println("");


        // [UserVO 객체 개별 데이터 확인 실시]
        System.out.println("[JSON 파싱] getListMap : " + Parsing_UserVO.getListMap());
        System.out.println("");


        // ===================================

    } // [메인 종료]

} // [클래스 종료]
 

[VO 모델 클래스 : 소스 코드]

 

package com.example.testapp;

import java.util.ArrayList;
import java.util.Map;

public class UserVO {


    // TODO [전역 변수 선언 실시]
    private String name;
    private int age;
    private ArrayList<Map<String, Object>> listMap;


    // TODO [클래스 생성자 초기화 실시]
    public UserVO(String name, int age, ArrayList<Map<String, Object>> listMap){

        // 전역 변수에 매핑 실시
        this.name = name;
        this.age = age;
        this.listMap = listMap;
    }


    // TODO [개별 데이터를 확인 하기 위해 get 생성]
    public String getName(){
        return name;
    }


    // TODO [개별 데이터를 확인 하기 위해 get 생성]
    public int getAge(){
        return age;
    }


    // TODO [개별 데이터를 확인 하기 위해 get 생성]
    public ArrayList<Map<String, Object>> getListMap(){
        return listMap;
    }


    // TODO [toString() 메소드 재정의 수행 실시 : 클래스 데이터 확인 용도]
    @Override
    public String toString(){
        return "UserVO ["
                + "name=" + name + ", "
                + "age=" + age + ", "
                + "listMap=" + listMap.toString()
                + "]";
    }

} // [클래스 종료]
 

[결과 출력]


 
반응형
Comments