본문 바로가기
개발/Javascript

JSON에서는 undefined를 사용할 수 없다.

by 안뇽! 2022. 1. 28.
반응형

엄밀히 말하면 JSON은 자바스크립트가 아닌, 어떤 언어에도 종속되지 않는 데이터 교환 포맷이지만 난 JS만 사용하고 JSON도 JS에서만 사용하므로 Javascript 카테고리에 글을 씀.

이 글을 쓰는 이유는 오늘 회사에서 JSON으로 전달되는 변수를 다룰 때, 삼항연산자로 undefined를 사용했다가, JSON에는 undefined를 사용할 수 없다는 에러를 만났기 때문 

(a ? a : undefined)

방금 말했듯이 JSON은 자바스크립트가 아닌, 컴퓨터 언어와는 별개의 기능을 하는 데이터 교환 포맷이다.

파이썬,C언어,Javascript 등 문법이 다른 언어들에서도 공통되는 문법이 있다.

 

바로 문자열!

 

모든 코드 내용은 문자열로 바꾸어, 즉 JSON화 하여 다른 언어를 사용하는 플랫폼과 교환할 수 있는 것이다.

 

예를들면 대부분의 REST API들은 JSON 형태의 데이터를 응답한다. 서로 JSON을 교환하기에, JAVA로 이루어진 백엔드와 Javascript로 이루어진 프론트엔드가 서로 네트워크 통신을 할 수 있는것이다.

 

문제는, JSON은 Javascript가 아니고, 그렇기에 Javascript로 JSON을 사용할 때 유의해야할 점이 있다는 것이다.

 

객체와 배열

속성의 이름은 반드시 큰 따옴표로 표시된 문자열이어야 함.

{ name : 'june' }//이건 Javascript이다. JSON에서는 사용할 수 없다.

{ "name" : "june" } //이렇게 작성해야 JSON에서 사용할 수 있음.

 

숫자

소수점 뒤에는 적오도 한 자릿수가 뒤따라야 한다. NaN과 Infinity는 지원하지 않는다.

 => JSON으로 전달되는 변수에는 NaN이나 Infinity를 할당하면 안된다!

 

주석

주석을 사용할 수 없음.

package.json에서 '//'를 써 보자. 아마 빨간줄이 뜰 껄

 

undefined 미지원

오늘 내가 겪은 에러, JSON으로 전달되는 변수에는 undefined를 할당하면 에러가 난다.

나는 null을 할당하여 해결했다.

 

JSON메서드

  • JSON.parse() : 문자열을 JSON으로서 구문 분석, 쉽게 생각해서 JSON화된 문자열을 원래대로 되돌린다.(보통 객체형태)
  • JSON.stringify() : JSON문자열을 반환. 그냥 문자열화 시킨다고 생각. 썩 좋은 방식은 아니지만 객체 전체를 깊은복사 할 때 사용하기도 한다. (문자열은 값 자체를 복사하기 때문에, 문자열화 한 후에 다시 JSON.parse()를 사용하면 다른 메모리 주소를 참조하는 객체가 됨)

 


코드스테이츠 교육생때 작성했던 JSON 블로깅보다 잡설명이 없는 말끔한 글을 쓴 것 같다.(고수분들이 보면 아직 허접하겠지만?)

 

참고자료 

https://www.daleseo.com/js-window-fetch/

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/JSON

https://jeesoo.work/json

반응형

'개발 > Javascript' 카테고리의 다른 글

Chart.js  (0) 2022.05.12
Set : 배열 중복제거하기  (0) 2022.05.01
Class는 Object 찍어내는 기계(코딩애플)  (0) 2022.01.15
프로토타입 두서없이 정리  (0) 2022.01.04
DOM  (0) 2022.01.01