Queen Julia 2024. 6. 16. 16:23

 

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}
    }
}