JavaScript Object Notation
-> 데이터 교환을 위해 만들어진 객체 형태의 포맷
JSON과 JS의 차이
JSON.stringify() 메서드는 JavaScript 값이나 객체를 JSON 문자열로 변환합니다. 선택적으로, replacer를 함수로 전달할 경우 변환 전 값을 변형할 수 있고, 배열로 전달할 경우 지정한 속성만 결과에 포함합니다.
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.w3c.dom.ls.LSOutput;
import java.util.*;
public class stringifyJSON {
public String ObjectMapper(Object data) throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
return mapper.writeValueAsString(data);
}
public String stringify(Object data) {
// 입력된 값이 문자열일 경우"foo"
if(data instanceof String) return String.format("\"%s\"", data);
// 입력된 값이 Integer일 경우
else if(data instanceof Integer) return String.format("%d", data);
// 입력된 값이 Boolean일 경우
else if(data instanceof Boolean) return String.format("%b", data);
// 입력된 값이 Object[]일 경우
else if(data instanceof Object[]) {
Object[] obj = (Object[]) data;
if(obj.length == 0) return "[]";
else if(obj.length == 1) return "[" + stringify(obj[0]) + "]";
return null;
}
// 입력된 값이 HashMap일 경우
else if(data instanceof HashMap) {
HashMap<String, String> map = new HashMap<>();
return String.format("%s", data);
}
// 지정되지 않은 타입의 경우에는 "null"을 리턴합니다.
else return "null";
}
}
/*
1. stringify 함수
-> data받아서 확인 -> 타입확인 if문을 사용(instanceof 메서드)
2. 반환 3가지
-> return true, foo, null
3. hashmap: Map 자료형의 Key는 항상 String으로 저장됩니다. null은 입력할 수 없습니다.
4. 전달인자의 타입은 instanceof 메서드
5. 미지정 -> null
iDE 파일 불러오기
열기 -> 폴더만 깔끔하게 -> 모듈 sdk
참조 오류
빌드/실행/배포 -> 그래들 -> 빌드/실행/테스트 IDE로 변경