JsonResponse对象

JsonResponse对象

作用:序列化成json格式的数据
json格式的数据有什么作用:
	前后端数据交互需要使用用到json作为过渡,实现跨语言传输数据

# 补充:
    前端序列化:
    JSON.stringify()
    JSON.parse()

    后端序列化:
    json.dumps()
    json.loads()

引子:

# 使用json模块序列化

import json

def ab_json(request):
    user_dict = {'username':'gary我是张三','password':'123','hobby':'girl美女'}
    # 将字典序列化为json格式的字符串
  	json_str = json.dumps(user_dict)
    # 将序列化后的字符串返回
    return HttpResponse(json_str)

# 解决上述问题:
import json

def ab_json(request):
    user_dict = {'username':'gary我是张三','password':'123','hobby':'girl美女'}
    # 将字典序列化为json格式的字符串
  	json_str = json.dumps(user_dict,ensure_ascii=False)  # 将内置编码修改
    # 将序列化后的字符串返回
    return HttpResponse(json_str)

# django提供的模块

from django.http import JsonResponse
def ab_json(request):
    user_dict = {'username':'gary我是张三','password':'123','hobby':'girl美女'}

    return JsonResponse(user_dict) 

# 解决上述问题
from django.http import JsonResponse
def ab_json(request):
    user_dict = {'username':'gary我是张三','password':'123','hobby':'girl美女'}
    return JsonResponse(user_dict, json_dumps_params={'ensure_ascii': False})

# 通过研究源码推到出

# 研究其他形式是否可以序列化:

from django.http import JsonResponse
def ab_json(request):
    l = [11,22,33,44,55]
   
    return JsonResponse(l)

from django.http import JsonResponse
def ab_json(request):
    l = [11,22,33,44,55]
   
    return JsonResponse(l,safe=False)
# 默认只能序列化字典 序列化其他需要加safe参数	

posted @ 2022-03-02 14:35  JasonBorn  阅读(49)  评论(0编辑  收藏  举报