투케이2K

52. (spring/스프링) org json 라이브러리 사용해 JSONObject , JSONArray 사용 실시 본문

Spring

52. (spring/스프링) org json 라이브러리 사용해 JSONObject , JSONArray 사용 실시

투케이2K 2022. 6. 28. 07:57

[개발 환경 설정]

개발 툴 : inteli j

개발 언어 : spring

 

[소스 코드]

    // TODO [build gradle 설정]
    implementation 'org.json:json:20200518'





    // TODO [import 설정]
    import org.json.JSONObject;
    import org.json.JSONArray;





    // TODO [Mysql 전용 프로시저 호출 리턴 메시지 + 리턴 테이블 데이터 형식 JSON 포맷 실시]
    public static JSONObject mySqlMsgCursorJsonFormat (List<List<Map<String, Object>>> totalData, String O_MSG_NAME, String O_CUR_NAME) {

        // [리턴 데이터 선언 실시]
        JSONObject returnJson = new JSONObject();


        // [로직 처리 수행 실시]
        try {
            // [사전 인풋 데이터 널 체크 실시]
            if (O_MSG_NAME != null
                    && O_MSG_NAME.length()>0
                    && O_MSG_NAME.trim().equals("") == false
                    && O_MSG_NAME.trim().equals("null") == false
                    && O_MSG_NAME.trim().equals("undefined") == false

                    && O_CUR_NAME != null
                    && O_CUR_NAME.length()>0
                    && O_CUR_NAME.trim().equals("") == false
                    && O_CUR_NAME.trim().equals("null") == false
                    && O_CUR_NAME.trim().equals("undefined") == false

                    && totalData != null
                    && totalData.size()>1){ // [널이 아닌 경우]

                // [리턴 데이터 반환 실시]
                int curIdx = 0;
                for(int i=0; i<totalData.size(); i++){
                    JSONArray parseArray = new JSONArray(totalData.get(i));

                    if (parseArray.length() == 1){
                        JSONObject msgObj = new JSONObject(String.valueOf(parseArray.get(0)));
                        if (msgObj.has(String.valueOf(O_MSG_NAME))){ // [메시지인 경우]
                            returnJson.put(String.valueOf(O_MSG_NAME), String.valueOf(msgObj.get(O_MSG_NAME)));
                        }
                        else { // [커서 데이터인 경우]
                            curIdx = i;
                        }
                    }
                    else { // [커서 데이터인 경우]
                        curIdx = i;
                    }
                }

                // [리턴 테이블 반환]
                returnJson.put(String.valueOf(O_CUR_NAME), new JSONArray(totalData.get(curIdx)));
            }
            else {
                // [에러 출력]
                ///*
                System.out.println("\n");
                System.out.println("================================================");
                System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
                System.out.println("[METHOD] : "+String.valueOf("mySqlMsgCursorJsonFormat"));
                System.out.println("[ERROR] : "+String.valueOf("Json Total Data Size Error"));
                System.out.println("================================================");
                System.out.println("\n");
                // */
            }
        }
        catch (Exception e){
            e.printStackTrace();
        }


        // [리턴 데이터 반환 실시]
        return returnJson;
    }

 

반응형
Comments