JSON이란? JSON 규칙

웹[Web] 2018. 3. 24. 01:04
참고글




JSON(제이슨, JavaScript Object Notation)이란 ?
JSON이란 자바스크립트 언어에서 객체를 표현하는 표기법입니다.
그러나 JSON은 자바스크립트에서만 사용하는것은 아닙니다. JSON은 자바스크립트 구문을 따르기는 하지만 자바스크립트에서 파생되었기 때문에 JSON으로 불리울 뿐 XML이나 CSV처럼 어디서나 사용 가능한 개방형 표준 데이터 포맷(형식) 입니다.

앞서 말했듯 JSON은 개방형 표준 포맷으로 RFC 7159와 ECMA-404라는 두 개의 표준에 의해 기술되고 있으며, 공식 MIME 타입으로는 application/json을, 파일로 저장하게 되는경우 .json의 확장자를 가지게 됩니다.

기존 서버나 클라이언트간의 통신에는 XML 포맷을 사용하는것이 대세를 이루었지만 최근에는 여러가지 장점으로 인하여 JSON 포맷을 이용하는것이 대세가 되었습니다.

JSON은 key와 value를 가진 객체 표기법 이므로 자바, 파이썬, C#등의 객체지향 패러다임 언어에서 이용하는데 용이합니다. 



JSON의 장점
  • 단순 텍스트이며 표기가 직관적이므로 사람이 이해하기 쉽습니다.
  • 속성과 값 쌍으로 이루어지므로 CSV와 다르게 특정 값이 어떤 의미를 지니는지 이해하기 쉽습니다.
  • XML의 요소는 <name>Kim</name> 과 같이 여는 태그가 있으면 닫는 태그가 있기 때문에 데이터 자원 소모가 상대적으로 크지만 JSON은 key : value 방식이므로 상대적으로 데이터 자원 소모가 적습니다.
  • 거의 대부분이 HTTP를 이용한 웹 환경에서 데이터 교환이 이루어 지므로 데이터의 크기가 적다는 것은 매우 큰 의미를 지닙니다.
  • 특정한 언어나 플랫폼에 독릭접이므로, 규칙만 지켜주면 어떤 시스템간이든 교환이 가능합니다.
  • 대부분의 언어 및 플랫폼에서 JSON을 더욱 정교하게 다루기 위한 api를 제공하며, 브라우저에서도 json 파서를 내장하고 있습니다.




JSON 문법
자바 스크립트 언어에 익숙한 사람이라면 다음의 규칙은 매우 익숙할 것 입니다.

  • JSON 객체는 중괄호 블록 "{", "}" 으로 표기합니다.
  • JSON 배열은 대괄호 블록 "[", "]" 으로 표기합니다.
  • 속성(Key)과 값(Value) 쌍으로 이룹니다.
  • 속성과 값이 쌍을 이룰 때 콜론으로 구분하며 속성 : 값 형태로 표기합니다.
  • 속성은 쌍따옴표(")로 묶어 표기하며, 값은 자료형에 따라 표기 방법이 달라집니다. ex) "age" : 3
  • 속성이 여러개인 경우 ,(콤마)로 구분합니다.
 
[
    {
         "name" : "kim",
         "age"  : 19,
         "isAgree" : true,
         "hobby" : null
    },
    {
         "name" : "lee",
         "age"  : 18,
         "isAgree" : false,
         "hobby" : "cycle"
    }
]
cs



자료형

정수 표기법
정수는 단순히 숫자로 표기하며, 언어에서 지원하는 2진수, 8진수, 16진수 등의 표현은 지원하지 않습니다.
만약 다른 진법 표기가 필요한 경우 문자열 표기를 이용하도록 합니다.
13
1224
-223
0
-21
cs



실수(고정 소수점)
1.556
-33.5
cs



실수(부동 소수점)
1e4
2.5e12
6.78E-5
cs




Boolean 표기법
true
false
cs



Null 값
null
cs



문자열
문자열은 쌍따옴표(") 로 묶여야 하며, 0개 이상의 유니코드 문자로 이루어집니다.
만약 줄바꿈(개행)이나 쌍따옴표, 슬래시 등의 표기가 필요한 경우 이스케이프 문법을 지원합니다.
"1234"
"Kim"
"김철수"
"\"안녕\""
"hello \n world"
cs


문자열 데이터에 사용되는 이스케이프 문법
문자열 데이터는 쌍따옴표로 묶여야 하며 쌍따옴표 안에 사용되는 따옴표 역슬래시 등은 이스케이프 문법으로 처리해 주어야 합니다.

  • \" 따옴표
  • \t 탭
  • \n 개행
  • \f 폼 피드
  • \r 캐리지 리턴
  • \b 백스페이스
  • \/ 슬래시
  • \\ 역슬래시
  • \uHHHH 16진수 네자리로되어 있는 유니코드 문자



배열
배열은 대괄호 "[", "]" 로 나타내며, 하나의 배열에는 C나 자바 언어와 같이 한 가지 자료형만을 가지는것이 아닌 여러가지 자료형을 요소로 가질 수 있습니다. 또한 배열의 각 요소는 콤마(,) 로 구분됩니다.
[10"AA", {"a" : 3"b" : "bb"}, true]
{"a" : 33"b" : [3020"사십"]}
cs

 

 


블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

댓글을 달아 주세요! 질문 환영합니다!