TIL 👩🏻💻
TIL : Stringify JSON
heesue
2021. 3. 27. 00:27
1. JSON(Javascript Object Notation)
Javascript에서 객체를 만들 때 사용하는 표현식
2. JSON 데이터
· 데이터의 이름을 항상 큰따옴표("")와 함께 입력!!
· 숫자, 문자열, 불리언, 객체, 배열, Null 이 올 수 있다.
· JSON 객체 : 중괄호({})로 둘러싸 표현!!
· JSON 배열 : 대괄호([])로 둘러싸 표현!!
"데이터 이름":값
3. JSON method
JSON.stringify () : 인수로 전달받은 자바스크립트 객체를 문자열로 변환하여 반환
JSON.parse () : 인수로 전달받은 문자열을 자바스크립트 객체로 변환하여 반환
toJSON () : 자바스크립트의 Date 객체의 데이터를 JSON 형식의 문자열로 변환하여 반환
4. JSON.stringify 함수 구현
테스트들을 확인해보면 구조를 알 수 있다. 또는 콘솔창에 JSON.stringify()를 사용해보며 메서드를 익히자!!
먼저 obj가 null일 때, obj의 타입이 숫자, 불리언, 문자열, 배열, 객체인 경우로 나눠 생각해보자.
숫자, 불리언인 경우는 문자열 형태로 나와야 함을 알 수 있고 배열인 경우는 배열 안에 배열이 존재하기 때문에 재귀함수를 이용해 나타내야 함을 알 수 있다. 객체인 경우 또한 마찬가지이다.
function stringifyJSON(obj) { //obj가 객체인 경우만 코드 예시를 들어보자.
if (typeof obj === "object") {
let result = "";
for (let key in obj) {
if (obj[key] === undefined || typeof obj[key] === "function") {
result = String(result);
} else {
result = result + `${stringifyJSON(key)}:${stringifyJSON(obj[key])},`;
}
}
result = result.substr(0, result.length - 1);
return `{${result}}`;
};
//function stringifyJSON(obj) { //다른 방법
// if (typeof obj === 'object') {
// let newObj = [];
// for (let key in obj) {
// if (obj[key] === undefined || typeof obj[key] === 'fucntion') {
// return '{}';
// } else {
// newObj.push(`${stringifyJSON(key)}:${stringifyJSON(obj[key])}`)
// }
// }
// return `{${newObj}}`;
// };