Django用JsonResponse或者HttpResponse來返回JSON


如果用HttpResponse一般這樣用是正確的(記得要指明content_type="application/json"):

import json
from django.core import serializers
json_data = serializers.serialize('json', goods)
from django.http import HttpResponse
return HttpResponse(json_data, content_type="application/json")

下面這樣寫就可能出現有些類型序列化不了:

import json
from django.http import HttpResponse
return HttpResponse(json.dumps(json_list), content_type="application/json")

這是因為這個json.dumps不能序列化datetime這樣類型的數據,所以才會用第一種那種serializers.serialize()來對其進行序列化。

當然json.loads就是serializers.serialize()它的逆操作了,逆回來再用json.dumps()也就沒問題了。

 

JsonResponse做的工作也就是加上了dumps和content_type,要這樣用(轉過去再轉回來,因為自帶dumps沒辦法):

import json
from django.core import serializers
json_data = serializers.serialize('json', goods)
json_data = json.loads(json_data)
from django.http import JsonResponse
return JsonResponse(json_data, safe=False)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM