JSON (JavaScript Object Notation)은 데이터 교환 형식
주로 웹 애플리케이션과 서버 간의 데이터 전송에 사용
JSON은 텍스트 형식이며, 사람과 기계가 모두 쉽게 읽고 쓸 수 있도록 설계
1. JSON 기본 구조
JSON 데이터는 key-value 키-값,
중괄호 {}
2. 데이터 타입
JSON은 다음과 같은 데이터 타입을 지원
- 문자열(String): 큰따옴표 ""로 묶은 텍스트. 예: "John"
- 숫자(Number): 정수 또는 부동 소수점 숫자. 예: 30
- 불리언(Boolean): 참 또는 거짓. 예: true 또는 false
- 배열(Array): 대괄호 []로 묶은 값의 목록. 예: ["Math", "Science"]
- 객체(Object): 중괄호 {}로 묶은 키-값 쌍의 집합. 예: {"street": "123 Main St", "city": "Anytown"}
- null: 비어 있음을 나타내는 값. 예: null
3. JSON 사용 사례
JSON은 주로 웹 애플리케이션에서 데이터 전송 형식으로 사용
예를 들어, 클라이언트에서 서버로 데이터를 보내거나
서버에서 클라이언트로 데이터를 보낼 때 JSON을 사용합니다.
4. JSON의 파싱 및 직렬화
JSON 데이터를 처리하기 위해 파싱(Parsing)과 직렬화(Serialization)가 필요합니다.
- 파싱: JSON 문자열을 객체로 변환하는 과정.
- 직렬화: 객체를 JSON 문자열로 변환하는 과정
5. JSON 도구 및 라이브러리
- JavaScript: 브라우저 내장 JSON.parse()와 JSON.stringify`
- Python: json 모듈 사용
import json
# JSON 문자열
json_string = '{"name": "John", "age": 30, "isStudent": false}'
# JSON 문자열을 객체로 파싱
json_object = json.loads(json_string)
print(json_object['name']) # John
# 객체를 JSON 문자열로 직렬화
new_json_string = json.dumps(json_object)
print(new_json_string) # {"name": "John", "age": 30, "isStudent": false}
- Java: org.json 패키지 사용
import org.json.JSONObject;
public class Main {
public static void main(String[] args) {
String jsonString = "{\"name\":\"John\", \"age\":30, \"isStudent\":false}";
// JSON 문자열을 객체로 파싱
JSONObject jsonObject = new JSONObject(jsonString);
System.out.println(jsonObject.getString("name")); // John
// 객체를 JSON 문자열로 직렬화
String newJsonString = jsonObject.toString();
System.out.println(newJsonString); // {"name":"John","age":30,"isStudent":false}
}
}
'네트워크 (IP, 통신)' 카테고리의 다른 글
javascript api에서 res, req (0) | 2024.06.17 |
---|---|
RESTful API & JSON (0) | 2024.06.16 |
RESTful API (0) | 2024.06.16 |
API 문서 작성법 (엔드포인트, Req,Res, 오류 처리 ) (0) | 2024.06.16 |
네트워크, 프로토콜, TCP/IP 참조 모델 (0) | 2024.06.14 |