본문 바로가기

Network & Web

[웹을 지탱하는 기술] JSON

 

 

JSON : JavaScript Object Notation의 약자

 

그 이름이 나타내는 바와 같이 JavaScript 의 기법으로 데이터를 기술할 수 있는 점이 가장 큰 특징입니다.

 

웹 서비스에서 브라우저가 JavaScript를 실행할 수 있어 호환성이 좋고 XML과 비교하면 데이터표현이 간결하다는 등의 이점이 있어 Ajax 통신에서 데이터 포맷으로 활용되고 있습니다.

 

미디어 타입 : application/json 

 

자료형 : JSON에 마련되어 있는 자료형에는 다음의 6가지가 있습니다.

object
array
string
number
boolean
null

 

object

  • 이름과 값의 집합
  • 이름과 값의 세트를 오브젝트의 '멤버'라고 부름
  • JSON에서 멤버의 이름은 항상 문자열
  • 하지만 멤버의 값은 문자열, 수치는 물론 오브젝트나 배열 등 JSON의 자료형이면 다 들어갈 수 있음

 

string

  • JSON의 문자열은 반드시 이중인용부호(")로 감싸줌
  • 백슬래시(\)와 줄바꿈 같은 제어문자는 특수한 에스케이프 표기법을 가지고 있음 
    • ex- foo\\bar\n

 

boolean 

  • 'true'와 'false'를 반드시 모두 소문자로 기술해야 함

 

null

  • 반드시 소문자로 써야함

 

일시

  • JSON에서 기본적으로 제공하는 자료형에 일시는 없음
  • 따라서 일시를 표현할 때 개발자 측에서 어떤 규칙을 정하여 준비하지 않으면 안됨
  • 타임 존을 취급할 필요가 있을 경우, JavaScript의 Date 클래스의 toString() 메서드로 출력한 문자열을 이용할 수 있음. 하지만 이 메서드의 경우 JavaScript 처리 시스템에 따라 출력이 달라진다는 문제점이 있기 때문에 좀 더 표준적인 포맷으로 일시를 저장하는 것이 바람직함.

 

링크

  • JSON에서 링크를 구현하기 위해서는 단순히 URI를 문자열 값으로 가지는 것이 가장 간편함
  • URI는 절대 URI로 해두는 편이 무난함. 상대 URI를 넣을 수는 있지만 베이스 URI를 명확할 필요가 있음