JSON Response와 Serialization

찬민·2024년 9월 2일

TIL

목록 보기
46/62

JSON Response란?

JSON (JavaScript Object Notation)은 데이터를 저장하고 교환하는 데 사용되는 가볍고 인간 친화적인 데이터 형식이다. 웹 애플리케이션에서 서버와 클라이언트 간의 데이터 교환 시 주로 사용된다. JSON Response는 서버가 클라이언트의 요청에 대해 JSON 형식으로 응답을 보내는 것을 의미한다.

예시:

{
    "name": "John",
    "age": 30,
    "city": "New York"
}

이 예시는 서버가 클라이언트에게 name, age, city라는 세 가지 정보를 JSON 형식으로 반환하는 것이다.

Serialization이란?

Serialization은 복잡한 데이터 구조(예: 객체, 배열)를 JSON이나 XML과 같은 형식으로 변환하는 과정이다. 이렇게 변환된 데이터는 전송하거나 저장하기에 적합한 형태로 변환된다. Django에서는 Django REST Framework를 사용하여 데이터를 쉽게 직렬화할 수 있다.

예시:

from rest_framework import serializers

class UserSerializer(serializers.Serializer):
    name = serializers.CharField(max_length=100)
    age = serializers.IntegerField()
    city = serializers.CharField(max_length=100)

위의 예시는 User라는 모델을 JSON 형식으로 변환하기 위한 직렬화 클래스이다. 이 직렬화 클래스를 통해 데이터베이스에 저장된 User 객체를 JSON으로 변환할 수 있다.

Django에서 JSON Response 생성

Django에서는 데이터를 JSON으로 변환하여 클라이언트에게 응답을 보낼 수 있다. 이를 위해 JsonResponse 클래스를 사용할 수 있다.

예시:

from django.http import JsonResponse

def user_detail(request):
    data = {
        "name": "John",
        "age": 30,
        "city": "New York"
    }
    return JsonResponse(data)

이 예시는 사용자의 세부 정보를 JSON 형식으로 반환하는 간단한 뷰를 보여준다.

Serialization과 Django REST Framework

Django REST Framework를 사용하면 Django에서 쉽게 직렬화(Serialization)와 역직렬화(Deserialization)를 할 수 있다. Django REST Framework는 API를 구축하기 위한 강력한 도구를 제공한다.

예시:

from rest_framework import serializers
from .models import User

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ['name', 'age', 'city']

def user_list(request):
    users = User.objects.all()
    serializer = UserSerializer(users, many=True)
    return JsonResponse(serializer.data, safe=False)

이 코드는 Django 모델 User를 직렬화하고, 이를 JSON 형식으로 응답하는 예시이다.

0개의 댓글