All Articles

JSON과 데이터 타입

JSON이란? (JavaScript Object Notation)

JSON: 속성-값 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해
인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷

JSON은 워낙 유명하다. 특징점은 나같은 주니어 웹개발자도 무슨 내용인지 알아보기가 쉽다.
웹 초기에는 XML형식의 데이터양식을 사용했는데 이 XML은 온갖 헤더와 알아보기 힘든 태그들 범벅이라 알아보기가 어렵다.

이에 Ecma는 2009년에 XML대신 ES5부터 스크립트의 기본엔진으로 넣어버렸기 때문에 오늘날 브라우저들은 읽기 쉽고 데이터를 차지하는 용량도 적은 JSON을 대세로 사용하고 있는 중이다.

그리고 워낙 구조도 쉬워서 어떤 프로그래밍 언어든 간에 구현하기가 쉽다.
단점으로는…

  • 조그만 문법오류로도 망가질 수 있다. 예를 들어 comma(,)를 생략한다던가 하면 JSON 데이터 형식은 망가져 버린다.
  • 주석이 안된다! 이게 무슨 데이터 값인지 주석을 달고 싶은데 주석을 달 수가 없다. 만약 주석을 달고 싶으면 "_comment"등을 사용해서 임의로 넣어야 한다.
   "_comment": "사람에 대한 Object",
   "Person": {
      "name": "Yohan Kim",
      "age": 20
   }
}

JSON의 자료형과 문법

JSON에서 허용하는 데이터 포맷은 아래와 같다.

  • 수(Number)
  • 문자열(String): 0개 이상의 유니코드 문자들의 연속. 문자열은 큰 따옴표(“)로 구분.
  • 참/거짓(Boolean): true 또는 false 값
  • 배열(Array): 0 이상의 임의의 종류의 값으로 이루어진 순서가 있는 리스트. 대괄호로 나타내며 요소는 쉼표로 구분한다.
  • 객체(Object): 순서가 없는 이름/값 쌍의 집합으로, 이름(키)이 문자열이다.
  • null: 빈 값으로, null을 사용한다.
const myJsonObj = {
  "String": "hello world",
  "Number": 3.14159,
  "Null": null,
  "Boolean": true,
  "Array": [20, 30, "orange"],
  "Object": {
    "name": "Yohan",
    "age": "28"
  }
};

그리고 REST API를 활용한다면 jsonplaceholder라는 사이트를 사용해서 Dummy로 json을 받아올 수 있다.

JSONplaceHolder 참 테스트하기에 좋은 사이트이다. 이러한 사이트를 만들어놓은 개발자들에게 참 감사한다.