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;
}
}