JSON?

JSON?

JSON(JavaScript Object Notation)은 경량의 DATA 교환 형식이다. 이 형식은 사람이 읽고 쓰기에 용이하며, 기계가 분석하고 생성함에도 용이하다.

JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999의 일부에 토대를 두고 있다.

JSON은 완벽하게 언어로 부터 독립적이지만 C-family 언어 - C, C++, C#, Java, JavaScript, Perl, Python 그외 다수 - 의 프로그래머들에게 친숙한 관습을 사용하는 텍스트 형식이다. 이러한 속성들이 JSON을 이상적인 DATA 교환 언어로 만들고 있다.



JSON 구조

JSON은 두개의 구조를 기본으로 두고 있다:

  • name/value 형태의 쌍으로 collection 타입. (다양한 언어들에서, 이는 object, record, struct(구조체), dictionary, hash table, 키가 있는 list, 또는 연상배열로서 실현 되었다)
  • 값들의 순서화된 리스트. 대부분의 언어들에서, 이는 array, vector, list, 또는 sequence로서 실현 되었다.



JSON 형식


Object

Object는 Name/Value 쌍들의 비순서화된 SET이다. Object는 {로 시작하고 }로 끝내어 표현한다. 각 name 뒤에 :을 붙이고 ,로 name/value 쌍들 간을 구분한다.

1
2
3
4
5
6
7
8
9
10
object
    {}
    { members }
    
members
    pair
    pair , members
    
pair
	string : value


Array

Array은 값들의 순서화된 collection 이다. array는 [로 시작해서 ]로 끝내어 표현한다. ,로 Array의 값들을 구분한다.

1
2
3
4
5
6
7
array
    []
    [ elements ]
    
elements
    value 
    value , elements


Value

Value는 큰따옴표안에 string, number ,true ,false , null, object ,array이 올수 있다.

1
2
3
4
5
6
7
string
number
object
array
true
false
null


String

String은 큰따옴표안에 둘러 싸인 zero 이상 Unicode 문자들의 조합이며, 쌍다옴표안에 감싸지며,backslash escape가 적용된다. 하나의 문자(character)도 하나의 문자열(character string)로서 표현된다. string은 C 또는 Java 문자열 처럼 매우 많이 비슷하다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
String
    ""
    " chars "
chars
    char
    char chars
char
    any Unicode character
    \"
    \
    \/
    \b
    \f
    \n
    \r
    \t
    \u four-hex-digits


Number

number는 8진수와 16진수 형식을 사용하지 않는것을 제외하면 C와 Java number 처럼 매우 많이 비슷하다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
number
    int
    int frac
    int exp
    int frac exp

int
    digit
    digit1-9 digits 
    - digit
    - digit1-9 digits

frac
	. digits
    
exp
	e digits
    
digits
    digit
    digit digits
    
e
    e
    e+
    e-
    E
    E+
    E-



예시

1
2
3
4
5
{"employees":[
    {"firstName":"John", "lastName":"Doe"},
    {"firstName":"Anna", "lastName":"Smith"},
    {"firstName":"Peter", "lastName":"Jones"}
]}

이를 xml 형식으로 변환하면 아래와 같다.

1
2
3
4
5
6
7
8
9
10
11
<employees>
    <employee>
        <firstName>John</firstName> <lastName>Doe</lastName>
    </employee>
    <employee>
        <firstName>Anna</firstName> <lastName>Smith</lastName>
    </employee>
    <employee>
        <firstName>Peter</firstName> <lastName>Jones</lastName>
    </employee>
</employees>



출처

www.json.org