JSON 과 JS Object는 유사한 구조를 갖지만 엄밀하게 다른 개념입니다.


JS Object is a structure in script engine's memory,

JSON is a way do describe the content of that object in a text file.


  • Object는 JS Engine 메모리 안에 있는 데이터 구조이고,
  • JSON은 객체의 내용을 기술하기 위한 text 파일이라는 점이 다릅니다.
    • JSON은 "파일"이므로 확장자 명이 .JSON인 파일이 존재합니다.


JS는 JSON을 Object로 쉽게 파싱 할 수 있도록 JSON.parse() 메서드가 존재합니다.

이 메서드가 존재하는 이유는 HTTP와 관련이 있습니다.


HTTP에서 메시지는 "문자열"로 전송이 되기 때문에 상대방에게 전송을 할 때 JSON.stringify() 메서드를 호출하여 JSON을 문자열로 만듭니다.

이 데이터를 받으면 다시 JSON으로 변환하기 위해 JSON.parese() 메서드를 호출하게 되고, 이 데이터를 JS Object의 값으로 할당하면 Object가 됩니다.


다음은 JSON.parese() 메서드에 대한 W3schools의 설명입니다.



이 메서드를 통해 제가 말하고 싶은 것은 JS Object로 HTTP 통신하는 것이 아니라, JSON으로 서버와 클라이언트가 데이터를 주고 받는다는 것입니다.

JSON을 JS Object로 파싱하기 위해서 필요한 메서드가 JSON.parse() 메서드라는 것이구요.




또한 표기법에서도 차이가 있습니다.

JSON은 함수를 값으로 할당할 수 없으며, 프로퍼티에는 큰 따옴표(")가 있어야 합니다.

왼쪽의 JSON 파일은 이클립스에서 작성한 것인데, 보시는 바와 같이 에러가 발생한 것을 볼 수 있습니다.



이상으로 JSON과 Object의 차이에 대해 알아보았습니다.

JSON과 JS Object는 다른 것이므로 정확한 의미를 구분하기 위해 혼용해서 사용하지 않는 것이 좋습니다.