**class JsonResponse(data, encoder=DjangoJSONEncoder, safe=True, json_dumps_params=None, \*\*kwargs)[[源码]](https://docs.djangoproject.com/en/1.10/_modules/django/http/response/#JsonResponse)**
这是一个[**HttpResponse**](https://docs.djangoproject.com/en/1.10/ref/request-response/#django.http.HttpResponse)子类,它可以返回一个JSON编码的响应。它继承了父类的大多数行为,同时也有如下不同之处:
它默认的**Content-Type**头部,被设置为**application/json**.
第一个参数,**data**,需要是一个**dict**类型。如果**safe**参数被设置为**False**(参见下面),那么data参数可以是任何可被JSON序列化的对象。
**encoder**参数,默认是[**django.core.serializers.json.DjangoJSONEncoder**](https://docs.djangoproject.com/en/1.10/topics/serialization/#django.core.serializers.json.DjangoJSONEncoder),被用来序列化**data**。参看[JSON序列化](https://docs.djangoproject.com/en/1.10/topics/serialization/#serialization-formats-json)可以知道序列化处理的更多细节。
**safe**布尔参数默认是**True**。如果被设置为**False**,任何对象都能被插入进行序列化(否则只能传入**dict**实例)。如果**safe**是**Tue**,并且一个**非dict**对象传递到第一个参数中,则将引发[**TypeError**](https://docs.python.org/3/library/exceptions.html#TypeError)异常。
**json_dumps_params**参数是一个关键字字典,存放了将被传入**json.dumps()**中的参数,这个dumps()函数在生成response响应时将被调用。
>[warning] Django1.9更新:
>新增**json_dumps_params**参数