node.js
나온지 오래된 순정 express 프레임워크를 전부 셋팅해서 사용하는 것이 아니라
Nest.JS 와 같은 최신 프레임워크를 사용한다면 별도의 셋팅없이 백엔드 단에서 JSON 파일을 읽을 수 있다.
본문에서 배운 개념은 이미 알고 있고 사용하고 있는 개념이었다.
그러나 JSON.stringify() 와 JSON.parse() 이전에 어떤 것들이 있었고
나아가서 각 메서드가 정확히 어떤 것인지 조금 더 잘 알게 되었다는 점에서 뜻깊은 시간이었다.
심심하면 아래 영상을 시청해보는 것도 나쁘지 않다.
https://www.youtube.com/watch?v=ff4fgQxPaO0
본 도서에는 추가적으로 아래의 컨텐츠가 포함되어 있었다.
하지만 나는 추가적인 시간을 소요할 정도의 가치가 없다고 판단하고 우선순위가 높은 다른 챕터를 읽기로 결정했다.
JSON 직렬화는 일반적인 프로그래밍 언어 상의 객체를 JSON 타입으로 바꿔주는 과정을 의미합니다. 이러한 과정은 크게 두 가지가 있으며, 지금은 stringify() 의 방법을 사용하고 있습니다.
const age=100;
console.log("age = "+JSON.stringify(age)+"\n");
const name="unchpaered";
console.log("name = "+JSON.stringify(name)+"\n");
const array=['a1','a2','b1','c1'];
console.log("array = "+JSON.stringify(array)+"\n");
const bool=true;
console.log("bool = "+JSON.stringify(bool)+"\n");
const obj={
like: "potato",
dislike: "sweet potato",
love: "sweety potato"
}
console.log("object = "+JSON.stringify(obj)+"\n");
위 함수의 인자는 다음과 닽다.
const obj={
like: "potato",
dislike: "sweet potato",
love: "sweety potato",
tags: ["t-shirt", "pants", "neck tie"]
}
console.log("object = "+JSON.stringify(obj, null, 2)+"\n");
위 이름을 가진 함수를 객체 안에서 정의해버리면
JSON.stringify() 가 무력화되고 toJSON() 의 리턴값만 반환하는 문제가 생긴다.
const obj={
like: "potato",
dislike: "sweet potato",
love: "sweety potato",
tags: ["t-shirt", "pants", "neck tie"]
}
obj.toJSON=function() {
return "Hello, I'm an object";
}
console.log("obj.toJSON() : "+JSON.stringify(obj,null,2)+"\n");
JSON 비직렬화는 JSON 타입의 문서를 일반적인 프로그래밍 언어 상의 객체로 바꿔주는 과정을 의미합니다. 이러한 과정은 크게 두 가지가 있으며, 지금은 parse() 의 방법을 사용하고 있습니다.
const obj='{ "sessionDate": new Date()}';
console.log("Parse with eval() : "+eval("("+obj+")").sessionDate+"\n");
console.log("Parse with parse() : "+JSON.parse(obj).sessionDate"\n");
const obj={
like: "potato",
dislike: "sweet potato",
love: "sweety potato",
tags: ["t-shirt", "pants", "neck tie"]
}
const objJson=JSON.stringify(obj);
const objParser=JSON.parse(objJson);
console.log(objParser.like);