Linuxpia/웹 프로그램

[FastAPI] FastAPI 요청에 대한 응답은 JSON으로 변환, JSON이란?

Linuxpia4U 2024. 3. 5. 03:40
반응형

JSON이란?

JSON (JavaScript Object Notation)은 경량의 데이터 교환 형식으로, 인간이 읽고 쓰기 쉬울 뿐만 아니라 기계가 파싱하고 생성하기에도 용이합니다. JSON은 두 개의 구조를 기반으로 합니다.

  1. 이름/값 쌍의 집합 (객체): 다양한 언어에서는 객체(object), 레코드(record), 구조체(struct), 딕셔너리(dictionary), 해시 테이블(hash table), 키드 목록(keyed list), 또는 연관 배열(associative array)로 구현됩니다. JSON에서는 객체를 중괄호로 묶은 일련의 이름/값 쌍으로 표현합니다.
  2. 값의 정렬된 리스트 (배열): 대부분의 언어에서 배열(array), 벡터(vector), 리스트(list), 시퀀스(sequence) 등으로 구현됩니다. JSON에서는 배열을 대괄호로 묶은 값의 순차적인 리스트로 표현합니다.

JSON 유래와 활용

JSON의 형식은 JavaScript의 객체와 배열의 리터럴 형식에서 유래했지만, JSON 형식은 순수한 텍스트로 구성되어 있습니다. JSON은 key:value 쌍으로 이루어진 데이터 객체를 전달하기 위해 설계되었으며, 다음과 같은 기본 데이터 타입을 지원합니다.

  • 문자열 (String)
  • 숫자 (Number)
  • 객체 (Object)
  • 배열 (Array)
  • 참/거짓 (true/false)
  • null

JSON의 특징과 예제

JSON의 간결함과 가독성 때문에, 웹 API를 통한 데이터 교환 포맷으로 널리 채택되었습니다. 예를 들어, 웹 서버는 클라이언트의 HTTP 요청에 JSON 형식으로 데이터를 응답할 수 있고, 클라이언트는 이 데이터를 파싱하여 필요한 정보를 추출할 수 있습니다.

JSON 예제:

{
  "name": "John Doe",
  "age": 30,
  "isEmployed": true,
  "address": {
    "street": "123 Main St",
    "city": "Anytown"
  },
  "phoneNumbers": [
    {
      "type": "home",
      "number": "212 555-1234"
    },
    {
      "type": "fax",
      "number": "646 555-4567"
    }
  ]
}

 

위 예제에서 name, age, isEmployed, address, phoneNumbers는 객체의 키입니다. address는 중첩된 객체를, phoneNumbers는 객체의 배열을 나타냅니다. 이러한 구조 덕분에 JSON은 데이터를 계층적으로 표현하는 데 매우 효율적입니다.

정리

다양한 프로그래밍 언어는 JSON 데이터를 생성하고 파싱하기 위한 라이브러리를 제공합니다. Python에서는 json 표준 라이브러리를 사용하여 JSON 데이터를 쉽게 다룰 수 있습니다.

반응형