JSON: 두 판 사이의 차이

(분류 추가)
편집 요약 없음
78번째 줄: 78번째 줄:
<references />
<references />
[[분류:프로그래밍 언어/마크업 언어]]
[[분류:프로그래밍 언어/마크업 언어]]
[[분류:프로그래밍 언어/마크업 언어|프로그래밍 언어/마크업 언어]]

2015년 4월 21일 (화) 21:39 판

JSON(Javascript Object Notation)은 특정 언어로부터 완벽하게 독립적이고 XML보다 가벼운 데이터 교환 형식으로, 사람이 읽기 쉽고, 프로그램도 읽고 쓰기 참 쉬운 언어이다. ECMA 262에 일부 토대를 두고 국제 표준 ECMA 404에 기반한다.[1]

JavaScript에서 다음과 같이 객체를 생성 해본적이 있다면 참 쉽게 쓸 수 있다.

var a={a:"sss",b:false};

구조

  • 이름과 값 형태의 쌍들로 이루어진 콜렉션 [2]
  • 값들의 순서화된 리스트[3]

보다 시피 이것들은 여러 프로그래밍 언어에서 쉽게 구현할 수 있으며, 이에 따라 여러 프로그래밍 언어에서 쉽게 JSON을 구현하거나 사용할 수 있다. (e.g. C#의 Newtonsoft.Json) (다만 Brainfuck같은 언어는 제외)

JSON에서 중요한 거 두가지가 있다.바로 object와 array이다.

object

object는 위에서 말한 이름과 값 형태의 쌍들의 비순서화된 모음이다. {로 시작하고 }로 끝난다. 각 이름 끝에 :를 붙이고 쌍과 쌍 사이는 ,로 구분한다.

예시

{name:"LiteHell",email:"asdf1234d@gmail.com"}

array

array는 값들의 순서화된 collection이라고 첫번째 출처에서 나와있는데 그냥 순서있고 자료형을 따지지 않는 배열로 보면 된다. [로 시작하고 ]로 끝낸다. 값과 값 사이의 구분은 object와 마찬가지로 ,로 한다.

예시

["LiteHell","라이트헬","라헬","신의탑라헬아니야이XXX들야"]

값에 올 수 있는 값들

  • 문자열
  • 숫자
  • 객체(위에 object)
  • 배열(위에 array)
  • 참/거짓 (true와 false)
  • null

string 간단 설명

길이 0 이상의 유니코드 문자열을 의미한다. 이스케이프 시퀸스들은 C계열 언어와 같이 \(백슬리쉬)로 시작된다. 하나의 문자도 하나의 문자열로 표현된다. (char도 string으로 표현된다.)

이스케이프 시퀸스 의미+부연설명
\" 큰따음표
\\ 역슬래쉬
\/ 슬래쉬
\b 백슬래쉬
\f Form feed
\n 개행
\r 캐리지 리턴
\t 수평 탭
\uXXXX 문자 U+XXXX, XXXX애는 16진수 네자리가 온다. (e.g. \u12FF를 하면 가 출력된다.))

number 주의사항

소수도 쓸 수 있는데 8진수나 16진수는 안되고 무조건 10진수만 쓸수 있다.

JSON 예시

{
name:"LiteHell",
email:"asdf1234d@gmail.com",
wanted:{wantedjob:"Programmer",wantednow:"exam score"},
ate:["빠삐코","팽이팽이","보석바","죠스바","갈비","삼겹살","치킨","피자","콜라",{kind:"간장치킨",withbones:false},"...등등등"],
wantedscore:100
}

참고 및 인용

  1. http://json.org/json-ko.html
  2. 잘 이해가 안되면 객체 또는 구조체의 속성(속성 이름,속성 값)이나 C#의 KeyValuePair<,>에 빗대어 이해하면 된다.)
  3. 이해가 잘 안되면 배열에 빗대어 이해해보자.