Json ?
- Json이란 JavaScript Object Notation의 약자로, Javascript 객체 문법으로 구조화된 데이터 교환 형식이다.
- 즉 데이터를 주고 받을 때 공통된 형식이 필요 하니 Json 형식으로 주고 받자는 것이다.
- Javascript 객체 문법은 { key:value } 와 같이 구성되어 있기에 Json도 해당 형식을 따르게 된다.
- 예를 들어 name : daehee, age : 30 이라는 한 사람의 데이터를 Json형식으로 표현 하면 아래와 같다.
{
"name" : "daehee",
"age" : 30
}
Json Array
- 만약 여러개의 데이터를 Json형식으로 표현 하고 싶으면 그냥 배열로 묶어 주면 된다.
[
{
"name" : "daehee",
"age" : 30
},
{
"name" : "han",
"age" : 29
}
]
Json 직렬화, 역직렬화
- 직렬화란 외부의 시스템에서도 사용할 수 있도록 byte 형태로 데이터를 변환하는 기술이다. 역직렬화는 그 반대를 의미한다.
- 쉽게 말해 어떠한 데이터를 Json형태로 변환하고 싶다면 Json직렬화를 해주면 되고, Json으로 된 데이터를 사용하고 있는 프로그래밍 언어에 맞게 변환하고 싶다면 Json역직렬화를 해주면 된다.
- 예를 들어 자바스크립트로 작성된 데이터를 파이썬으로 보내고 싶다면 그냥 보내면 될까? 아니다, 각각의 프로그맹언어마다 Json을 역직렬화 하는 방법이 다를 수 있기 때문에 먼저 데이터를 Json으로 변환을 하고 파이썬으로 보내야 하는 것이다.
- Json데이터를 직렬화 하고 싶다면 JSON.stringify()를, 역직렬화 하고 싶다면 Json.parse()를 사용하면 된다.
JSON.stringify()
- 직렬화를 하는 이유는 데이터를 시스템 외부에 저장하거나 전송하기 위해서 이다.
- 데이터를 다시 Json형식으로 바꿔주는 함수.
//😀 Json data는 아래와 같이 생겼지만
{
"name" : "daehee",
"age" : 30
}
//😀 실제로 프로그램에서 인식하는 Json은 아래와 같이 하나의 문자열이다.
//🔥 따라서 다시 Json으로 바꿔주는 메서드가 string으로 만든다는 의미인 stringify 인것이다.
'{ "name" : "daehee","age" : 30}'
JSON.parse()
- 역직렬화를 하는 이유는 시스템 외부에 저장되어 있거나 외부에서 전송되는 데이터를 받아와 복구 후 사용하기 위해서 이다.
- 서버의 데이터가 JSON형식이라면 해당 데이터를 가져와 사용할 때는 Javascript Object로 변환을 해줘야 한다. 이걸 가능하게 해주는 것이 JSON.parse라는 함수이다.