**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**參數