8월 31일 TIL, 항해 18일차

코코·2023년 9월 1일
0

TIL(Today I Learned)

목록 보기
18/19
post-thumbnail

JSON이란?

JSON(JavaScript Object Notation)은 Javascript 객체 문법으로 구조화된 데이터 교환형식

python, javascript, java 등 여러 언어에서 데이터 교환형식으로 쓰이며 객체 문법말고도 단순 배열, 문자열도 표현 가능

1. Javascript 객체문법

키(key)와 값(value)으로 구성됨. {key : value}
이미 존재하는 키를 중복선언하면 나중에 선언한 해당키에 대응한 값이 덮어쓰이게 됨.

2. 데이터 + 교환형식

데이터는 추상적인 아이디어에서부터 시작해 구체적인 측정에 이르기까지 다양한 의미로 쓰인다. 실험, 조사, 관찰 등으로 부터 얻은 사실이나 자료 등을 의미.

3. 여러언어에서의 쓰임

객체, 해시테이블, 딕셔너리 등로 변환되어 쓰임
ex) json in javascript = javascript object,
json in python = dict

4. 단순 배열, 문자열 표현

[1,2,3,4,5] -> 이것도 json
"King Sejong" -> 이것도 json

하지만 위의 형태는 잘 쓰이지 않고, 보통은 json object(위에서 살펴본 {key:value} 형태)나 json array 형태로 쓰인다.

5. JSON 실습

이름 : 코코
좋아하는 것 : 달리기, 바나나
달리기 : 10KM, 마라톤
바나나 : 초록색

{
	"name" : "코코",
    "like" : {
    	"running" : {
        	"distance" : "10km",
            "type" : "marathon"
         },
        "바나나" : {
        	"color" : "초록색"
         }
}

6. JSON의 타입

javascript object와 유사하지만 undefined, 메서드 등을 포함하지 않는다.

  • 수(Number)
  • 문자열(String)
  • 참/거짓(Boolean)
  • 배열(Array)
  • 객체(Object)
  • null

7. JSON의 직렬화, 역직렬화

직렬화란 외부의 시스템에서도 사용할 수 있도록 바이트(byte) 형태로 데이터를 변환하는 기술이며 역직렬화는 반대를 의미

(1) JSON.stringfy(JSON형식의 객체)

  • 객체 => 문자열로 변환하며, 이를 직렬화(serialize)라고 한다.
  • 통신할 때는 문자열로 직렬화하여 주고 받는 것이 안전하다.

(2) JSON.parse(JSON형식의 문자열)

  • 문자열 => 객체로 변환하며, 이를 역직렬화(deserialize)라고 한다.
  • 통신으로 받은 문자열은 객체로 역직렬화하여 사용하는 겻이 편리하다.

8. JSON의 활용

JSON은 프로그래밍 언어와 프레임워크 등에 독립적이므로, 서로 다른 시스템간에 데이터를 교환하기에 좋다. 주로 API의 반환형태, 시스템을 구성하는 설정파일에 활용된다.

profile
Just Do It

0개의 댓글