JASON

정동아·2023년 5월 11일

백엔드 부트캠프

목록 보기
21/41

JSON

JSON은 JavaScript Object Notation의 줄임말로 데이터 교환을 위해 만들어진 객체 형태의 포맷이다.
서로 다른 프로그램 사이에서 데이터를 주고받기 위해 사용되는 데이터 타입을 말한다.

예를 들면 Boolean타입을 입력받으면 -> 알맞은 형태의 JSON으로 변환, String 타입을 입력받으면 -> 알맞은 형태의 JSON으로 변환 등...
이렇게 java에서 제공하는 데이터 타입을 JSON으로 변경하는 기능이다.
배열이나 Map, HashMap타입의 요소를 가졌을 때도 변환 가능하다.

그래서 string, Integer, Object[] 등의 입력을 받았을 때의 처리를 실습했다.

 public class stringifyJSON {

  public String ObjectMapper(Object data) throws JsonProcessingException {
    ObjectMapper mapper = new ObjectMapper();
    return mapper.writeValueAsString(data);
  }
 public String stringify(Object data) {

    //입력된 값이 문자열일 경우
    if (data instanceof String
      return String.format("\"%s\"", data);
    }

    //입력된 값이 Integer일 경우
    if (data instanceof Integer){
      return Integer.toString((Integer)data);
    }

    //입력된 값이 Boolean일 경우
    if (data instanceof Boolean){
      return String.valueOf(data);
    }

    //입력된 값이 Object[]일 경우
    if (data instanceof Object[]){
      Object [] arr = (Object[]) data;

      for (int i = 0; i< arr.length; i++){
        arr[i] = stringify(arr[i]);
      }
      return Arrays.toString(arr).replaceAll(" ", "").replaceAll("=", ":");
    }

    //입력된 값이 HashMap일 경우
      if (data instanceof HashMap){
        HashMap <Object, Object> map =(HashMap<Object, Object>) data;
        HashMap<Object, Object> result = new LinkedHashMap<>();
        for (Map.Entry<Object,Object> entry: map.entrySet()) {
          String key = "";
          String value = "";
          result.put(key, value);
        }

        return  result.toString().replaceAll(" ","");
      }

    //지정되지 않은 타입의 경우에는 "null"을 리턴.
    return null;

  }
}
      

0개의 댓글