class JsonResponse
(data,encoder = DjangoJSONEncoder,safe = True,json_dumps_params = None ,** kwargs)[source]
HttpResponse
的一个子类,帮助用户创建JSON 编码的响应。 它从父类继承大部分行为,并具有以下不同点:
它的默认Content-Type
头部设置为application/json
。
它的第一个参数data
,应该为一个dict
实例。 如果safe
参数设置为False
,它可以是任何可JSON 序列化的对象。
encoder
,默认为 django.core.serializers.json.DjangoJSONEncoder
,用于序列化data。 关于这个序列化的更多信息参见JSON serialization。
布尔参数safe
默认为True
。 如果设置为False
,可以传递任何对象进行序列化(否则,只允许dict
实例)。 如果safe
为True
,而第一个参数传递的不是dict
对象,将抛出一个TypeError
。
json_dumps_params
参数是传递给用于生成响应的json.dumps()
调用的关键字参数的字典。
用法:
典型的用法如下:
>>> from django.http import JsonResponse >>> response = JsonResponse({'foo': 'bar'}) # >>> response.content b'{"foo": "bar"}'
from django.http import JsonResponse def diggit(request): response_stat={"state":True} return JsonResponse(response_stat) #这个方法直接给你序列化,不需要这样写HttpResponse(json.dumps(response_stat), # 而且返回到ajax的值不需要反向解析了
序列化非字典对象(http://python.usyiyi.cn/documents/Django_111/ref/request-response.html#serializing-non-dictionary-objects)
若要序列化非dict 对象,你必须设置safe 参数为False: >>> response = JsonResponse([1, 2, 3], safe=False) 如果不传递safe=False,将抛出一个TypeError