평소 JSON과 object 둘 다 같은 형태이길래 뭐가 다른 건가 싶어 찾아봐야지 찾아봐야지 하다가 오늘 찾아보고 이해한 토대로 작성해보려고 한다.
JS Object는 JS Engine에 있는 메모리 구조이며 JSON은 객체의 내용을 기술하기 위한 text 파일이다.
JS Object로 통신하는 것이 아니라 JSON으로 서버와 클라이언트가 통신하며 주고받는다는 것이다
const json =`{"data":[{"name":"yongseong","info":["student","27"]}]}`;
const obj = {data:[{name:'yongseong',info:['student','27']}]};
console.log(`제이슨 타입 = ${typeof(json)}`) ///'제이슨 타입 = string'
console.log(`오브젝트 타입 = ${typeof(obj)}`) ///'오브젝트 타입 = object'
변수명 json
이 JSON 형식으로 모든 키를 따옴표로 묶어야 하며 타입이 String
이 나온 것을 확인할 수 있다
반면에 obj
변수명은 JS Object 형식인데 키가 따옴표로 묶여이지 않고 타입은 objcet
로 나온 것을 확인할 수 있다. 형식은 비슷해 보이지만 완전히 타입부터 다르다는 것을 알 수 있으며 JSON은 함수를 값으로 할당할 수 없다는 특징 또한 가지고 있다.
우리가 HTTP 통신을 할 때 JSON을 주고 받기 때문에 백엔드에서 데이터를 받아올 땐 프론트엔드에서 이해할 수 있게 Object 형식으로 바꿔줘야 하며 백엔드에 JSON 양식으로 보내기 위해서는 Object를 JSON으로 변환을 해줘야한다.
그 변환 과정을 해주는 메소드가 있는데 JSON.stringify()
와 JSON.parse()
메소드이다.
위의 사진에서 보시다시피 JSON.stringify()는 Object를 JSON으로 바꿔주며 JSON.parse()는 JSON을 Object로 바꿔주는 것을 확인할 수 있다.
이번 벨로그 작성을 통해 JSON 과 Obect의 차이를 확실히 알 수 있었다