Pure Django 에서의 JSON 직렬화
-
JsonResponse
HttpResponse 의 서브 클래스
JSON-encoded response 를 생성할 수 있게 해줌
Content-Type header 의 default는 application/json
response 를 커스터마이징 하여 전달하거나 http status code 에 메세지를 더하여 보낼 떄 사용함
-
사용법
Django 에서 ORM 으로 DB 를 다룰 때 원하는 DB 데이터는 대부분 객체 형태로 조회됨
객체를 model_to_dict 같은 메서드나 파싱 함수를 만드는 과정 등을 통해 Python 의 자료형으로 변경해줌
JsonResponse 메서드 사용해 return
-
장점
파싱 함수를 만들 수 있어서 자료를 직접 다룰 수 있음
-
단점
파싱 함수 만들기가 번거롭고 코드가 길어짐(장점이기도 함)
-
-
serializers.serialize
모델(객체)를 원하는 데이터 타입으로 데이터 직렬화 시켜줌
-
사용법
ORM 으로 DB 조회
조회된 값 serialize 로 직렬화
대상은 이터레이터만 가능
인자에 데이터 형태, 원하는 필드 값 설정(선택)
HttpResponse 로 return
-
장점
직렬화 시키기 간단해짐
Query Set 같이 이터레이터가 구현된 자료구조에 적용하기 맞음
-
단점
추가적인 데이터 조작이 힘듦 (파싱 함수 만들어서 데이터 조작 가능)
이터레이터만 가능함 (개체 List에 넣어서 사용 가능하지만 list 안에 담기기에 원하는 자료구조 하기 번거로움)
-
-
-
json
Python 의 내장 모듈
직렬화, 역직렬화 에 대한 다양한 메서드 있음
-
장점
내장 모듈이라 Python 의 환경 어디든 가능
-
단점
객체형 구조는 바로 파싱하지 못하므로 python 의 자료형으로 파싱해줘야함
-