less than 1 minute read

프로그래밍 언어는 Javascript, Java, C, C++, C#, Python 등 많은 종류가 있다.

전세계 사람들이 영어라는 공용어를 이용해 국적이 달라도 의사소통을 할 수 있는 것처럼,

프로그래밍 언어가 달라도 범용적으로 읽을 수 있는 형태의 언어가 있다.

그것을 JSON, Javascript Object Notation라고 한다.

JSON은 데이터 교환을 위해 만들어진 것으로써 객체 형태의 포맷이다.

데이터 교환이 가능하려면, 문자열처럼 범용적으로 읽을 수 있는 형태여야 하는데,

Javascript에서 객체를 toString() 또는 String()을 이용해 문자열로 변환하려고 시도하면,

[object Objcet]를 반환할 뿐, 객체 정보를 포함하지 않는다.

그래서 객체를 JSON의 형태로 변환하거나 반대로 JSON을 객체의 형태로 변환해서 범용적으로 만들어준다.

JSON.stringify()

→ 객체 형태를 JSON 형태로 변환한다.

let transObj = JSON.stringify(obj);
console.log(typeof(transeObj)) // 'string'

stringify하는 과정을 직렬화 (serialize) 라고 한다.

JSON.parse()

→ JSON 형태를 객체 형태로 변환한다.

let stringObj = '{직렬화된 객체의 문자열}'
let obj = JSON.parse(stringObj);
console.log(typeof(obj)) // 'object'

반대로 parse하는 과정을 역직렬화 (deserialize) 라고 한다.

JSON의 기본 규칙

JSON과 Javascript의 객체와의 차이점을 알아보자.

  • Javascript 객체

    키 → 따옴표 없이 쓸 수 있다.

      let obj = {a: 'hello'}
    

    문자열 값 → 어떠한 형태의 따옴표도 사용 가능하다.

      'hello'
      "hello"
    
  • JSON

    키 → 반드시 큰따옴표를 붙여야 하고, 키-값 쌍 사이에 공백은 없다.

      "{\"a\":\"hello\"}"
    

    문자열 값 → 반드시 큰따옴표로 감싸야 한다.

      '"hello"'
    

Updated: