JSON (JavaScript Object Notation)은 데이터를 저장하고 교환하는 데 사용되는 가볍고 인간 친화적인 데이터 형식이다. 웹 애플리케이션에서 서버와 클라이언트 간의 데이터 교환 시 주로 사용된다. JSON Response는 서버가 클라이언트의 요청에 대해 JSON 형식으로 응답을 보내는 것을 의미한다.
예시:
{
"name": "John",
"age": 30,
"city": "New York"
}
이 예시는 서버가 클라이언트에게 name, age, city라는 세 가지 정보를 JSON 형식으로 반환하는 것이다.
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으로 변환하여 클라이언트에게 응답을 보낼 수 있다. 이를 위해 JsonResponse 클래스를 사용할 수 있다.
예시:
from django.http import JsonResponse
def user_detail(request):
data = {
"name": "John",
"age": 30,
"city": "New York"
}
return JsonResponse(data)
이 예시는 사용자의 세부 정보를 JSON 형식으로 반환하는 간단한 뷰를 보여준다.
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 형식으로 응답하는 예시이다.