일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- pos_tag
- pandas
- SMTP
- semi-project
- PYTHON
- Trouble shooting
- Roc curve
- aof
- 머신러닝
- 원소주
- Logistic linear
- stopwords
- 인공지능
- EarlyStopping
- category_encoders
- find_all()
- 이것이 코딩 테스트다
- selenium
- 그리디
- 크롤링
- Django
- ML
- AI
- 잡담
- auc
- 파일입출력
- json
- 트러블슈팅
- IOPub
- beautifulsoup
- Today
- Total
개발 블로그
JSON이란? 본문
[CODELION 강의] [심화] 같이 푸는 PYTHON - 오늘의 날씨에서 JSON이라는 개념이 나왔는데, 정보처리기사 공부를 할때도 나왔던 개념이고 데이터 전송에 관한 필수적인 개념인 것 같아 정리해 보려고 합니다.
01 JSON(JavaScript Object Notation)
Javascript 객체 문법으로 "키-값 쌍"으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷입니다. 웹 어플리케이션에서 데이터를 전송할 때 일반적으로 사용합니다(서버에서 클라이언트로 데이터를 전송하여 표현하려거나 반대의 경우). 그리고 비동기 브라우저/서버 통신 (AJAX)을 위해, 넓게는 XML(AJAX가 사용)을 대체하는 주요 데이터 포맷입니다.
JSON은 문자열 형태로 존재합니다. 네트워크를 통해 전송할 때 아주 유용한 형식입니다. 데이터에 억세스하기 위해서는 네이티브 JSON 객체로 변환될 필요가 있습니다. Javascript는 JSON 전역 객체를 통해 문자열과 JSON 객체의 상호변환을 지원합니다.
Note: 문자열에서 네이티브 객체로 변환하는 것은 파싱(Parsing)이라고 합니다. 네트워크를 통해 전달할 수 있게 객체를 문자열로 변환하는 과정은 문자열화(Stringification)이라고 합니다.
개별 JSON 객체를 .json
확장자를 가진 단순 텍스트 파일에 저장할 수 있습니다. MIME 타입은 application/json
입니다.
02 JSON 구조
JSON은 자바스크립트의 객체 표기법으로부터 파생된 부분 집합입니다.
따라서 JSON 데이터는 다음과 같은 자바스크립트 객체 표기법에 따른 구조로 구성됩니다.
- JSON 데이터는 이름과 값의 쌍으로 이루어집니다.
- JSON 데이터는 쉼표(,)로 나열됩니다.
- 객체(object)는 중괄호({})로 둘러쌓아 표현합니다.
- 배열(array)은 대괄호([])로 둘러쌓아 표현합니다.
예제
[
{
"name": "Molecule Man",
"age": 29,
"secretIdentity": "Dan Jukes",
"powers": [
"Radiation resistance",
"Turning tiny",
"Radiation blast"
]
},
{
"name": "Madame Uppercut",
"age": 39,
"secretIdentity": "Jane Wilson",
"powers": [
"Million tonne punch",
"Damage resistance",
"Superhuman reflexes"
]
}
]
Other notes
- JSON은 순수히 데이터 포맷입니다. 오직 프로퍼티만 담을 수 있습니다. 메서드는 담을 수 없습니다.
- JSON은 문자열과 프로퍼티의 이름 작성시 큰 따옴표만을 사용해야 합니다. 작은 따옴표는 사용불가합니다.
- 콤마나 콜론을 잘못 배치하는 사소한 실수로 인해 JSON파일이 잘못되어 작동하지 않을 수 있습니다. JSONLint같은 어플리케이션을 사 용해 JSON 유효성 검사를 할 수 있습니다.
- JSON은 JSON내부에 포함할 수 있는 모든 형태의 데이터 타입을 취할 수 있습니다. 즉, 배열이나 오브젝트 외에도 단일 문자열이나 숫자또한 유효한 JSON 오브젝트가 됩니다.
- 자바스크립트에서 오브젝트 프로퍼티가 따옴표로 묶이지 않을 수도 있는 것과는 달리, JSON에서는 따옴표로 묶인 문자열만이 프로퍼티로 사용될 수 있습니다.
03 JSON 구조를 쉽게 파악할 수 있게 해주는 도구, pyprnt
- 설치
pip install pyprnt
- import
from pyprnt import prnt
- 예시
menu = {
"비빔밥": 20000,
"돈까스": 10000
}
prnt(menu)
Reference
https://developer.mozilla.org/ko/docs/Learn/JavaScript/Objects/JSON
http://www.tcpschool.com/json/json_basic_structure
https://ko.wikipedia.org/wiki/JSON
'CS' 카테고리의 다른 글
MVC 모델 (0) | 2022.04.21 |
---|---|
라이브러리 vs 프레임워크 (0) | 2022.03.19 |