`
wangyongfei
  • 浏览: 23172 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

JsonResponse对象

阅读更多

1.JsonResponse

 

class JsonResponse(data, encoder=DjangoJSONEncoder, safe=True, json_dumps_params=None, **kwargs)

 

是HttpResponse的一个子类(有很多的子类),用于帮助创建JSON编码的响应。他从父类继承大部分行为,并具有以下的不同点:

  它的默认Content-Type头部设置为application/json。

(1)它的第一个参数 data,应该为一个 dict 实例。如果 safe 参数设置为 False,它可以是任何可 JSON 序列化的对象。

(2)encoder,默认为 django.core.serializers.json.DjangoJSONEncoder,用于序列化data。

(3)布尔参数 safe 默认为 True。如果设置为 False,可以传递任何对象进行序列化(否则,只允许 dict 实例)。如果 safe 为 True,而第一个参数传递的不是 dict 对象,将抛出一个TypeError。

(4)json_dumps_params 是一个字典,它是在生成响应时,传给 json.dumps() 的参数。

2.用法

 

from django.http import JsonResponse
 response = JsonResponse({'foo': 'bar'})
 response.content
'{"foo": "bar"}'      // 序列化非字典对象

 

若要序列化非 dict 对象,你必须设置 safe 参数为 False:

response = JsonResponse([1, 2, 3], safe=False)
如果不传递safe=False,将抛出一个TypeError。

3.修改默认的JSON 编码器

 如果你需要使用不同的 JSON 编码器类,你可以传递 encoder 参数给构造函数:

response = JsonResponse(data, encoder=MyJSONEncoder)

 

 

 

分享到:
评论

相关推荐

    Laravel开发-jsonresponse

    $data可以是任何可被转换为JSON的PHP变量,如数组或对象。 2. **状态码与头部设置**: Laravel的`json()`方法默认返回200状态码和"application/json"的Content-Type头。你可以通过传递第二个参数来设置自定义状态...

    2019年python自动化运维进阶篇20期视频教程-百度网盘下载视频

    │ 05 JsonResponse对象.mp4 │ 06 django template.mp4 │ 07 querydict对象.mp4 │ 08 数据库同步.mp4 │ 09 创建django用户.mp4 │ 10 用户登陆与练习.mp4 │ 11 知识点回顾.mp4 │ Reboot自动化班课件-devops7-1...

    Django框架HttpResponse对象用法实例分析

    3. JsonResponse对象: JsonResponse是HttpResponse的子类,用于将数据序列化为JSON格式,并设置响应头Content-Type为“application/json”。使用JsonResponse可以方便地将数据以JSON格式返回给客户端。 ```python ...

    django rest framework 自定义返回方式

    在这个例子中,我们不仅重写了基本的操作方法,还确保了每个方法都返回一个包含状态码和消息的JsonResponse对象。这样,无论是在成功的操作还是在处理异常时,前端都能接收到足够的信息来理解当前请求的状态。 此外...

    ajax_Django:Django的Ajax示例代码

    这里的`ajax_view`函数检查请求是否来自Ajax,如果是,则返回一个JsonResponse对象,其中包含我们想要发送的数据。如果不是Ajax请求,返回一个普通的HTTP响应。 接着,我们需要在`myapp/urls.py`中设置URL路由,...

    django实现HttpResponse返回json数据为中文

    `JsonResponse` 内置了将 Python 对象序列化为 JSON 的功能,并且默认情况下已经设置了正确的 `Content-Type` 和编码。但是,默认情况下 `JsonResponse` 只接受字典类型的对象作为参数。如果你想要返回列表或者非...

    解决Django响应JsonResponse返回json格式数据报错问题

    这意味着`JsonResponse`只接受字典类型的数据作为输入,因为字典是最常见的JSON对象类型。当你尝试传递列表或其他非字典类型的数据时,Django会抛出一个`TypeError`,提示你需要将`safe`参数设置为`False`来允许序列...

    【Django 011】Django2.2视图函数详解(三):HttpResponse和JsonResponse以及重定向和反向解析详解

    `JsonResponse`继承自`HttpResponse`,但会自动将Python对象序列化为JSON格式: ```python import json def json_example(request): data = {'name': 'John', 'age': 30} response = JsonResponse(data) return...

    response.json_测试_

    JSON数据由键值对组成,键用引号括起来,值可以是字符串、数字、布尔值、数组、对象或null。例如: ```json { "key1": "value1", "key2": 42, "key3": true, "key4": [1, 2, 3], "key5": { "subkey1": ...

    django 返回JSON,图片小例子

    这里,`JsonResponse`是Django提供的一个便捷类,用于将字典或其他可序列化对象转化为JSON格式的HTTP响应。在实际应用中,`data`可能会包含从数据库查询得到的结果或其他动态生成的数据。 这个简单的后端可能包含...

    Delphi_JSON控件及实例

    这两个库提供了解析、生成和操作JSON对象的功能。TIdJSON主要在Indy框架中,适合网络通信,而System.JSON则是Delphi自带的标准库,适用于一般性的JSON操作。 1. **TJSONObject与TJSONArray**: TJSONObject是用于...

    json-org.zip

    例如,你可以将Java对象转换为JSON字符串,也可以将JSON字符串解析为Java对象。 在Java中实现HTTP接口调用时,通常会涉及到网络请求和数据的序列化与反序列化。JSON由于其简洁性和通用性,常被作为HTTP接口的数据...

    Django的HttpRequest和HttpResponse对象详解

    ### Django的HttpRequest和HttpResponse对象详解 #### 一、引言 在Django框架中,`HttpRequest` 和 `HttpResponse` 对象扮演着极其重要的角色。它们是处理用户请求和响应的基础,同时也是开发人员与Web服务器之间...

    使用JSONObject解析json数据

    `JSONObject`代表一个JSON对象,它是由键值对组成的,键必须是字符串,而值可以是各种JSON类型:字符串、数字、布尔值、数组(`JSONArray`)、其他`JSONObject`或`null`。在Java中,`JSONObject`类提供了丰富的API来...

    Ajax与servlet后台交互,数据类型JSON

    public class JsonResponse { // 创建一个简单的Java对象 public String name = "John"; public int age = 30; // 将Java对象转换为JSON字符串 Gson gson = new Gson(); String json = gson.toJson(this); /...

    JavaScript 中处理JSON

    在 JavaScript 中,我们可以使用 `JSON.stringify()` 将一个 JavaScript 对象转换为 JSON 字符串,也可以使用 `JSON.parse()` 将 JSON 字符串转换为 JavaScript 对象。 - **JSON.stringify()**:将 JavaScript 值...

    JAVA发送HttpClient请求及接收请求结果过程

    如果请求成功(状态码为200),则通过`EntityUtils.toString()`方法读取响应实体的内容,并将其转换为JSON对象。 #### 五、错误处理 对于可能出现的各种异常情况,如网络连接失败、解析响应内容时出现错误等,我们...

    android使用JSON进行网络数据交换.pdf

    1. **解析JSON**: Android客户端接收到JSON响应后,解析JSON对象,将其转换为Java对象,如User对象。 2. **绑定数据**: 将解析出的用户数据绑定到UI组件,如ListView或RecyclerView,展示用户列表。 在实际开发中,...

    fastJSON v2.1.6.zip

    dynamic result = JSON.Parse(jsonResponse); Console.WriteLine(result.data.name); ``` ### 应用场景 1. **Web服务通信** - 在与RESTful API交互时,`fastJSON`可以帮助快速地序列化和反序列化HTTP响应。 2. **...

    django-geojson:django-geojson是用于将(Geo)Django对象(反序列化)为GeoJSON的助手的集合。

    最后,使用Django内置的`JsonResponse`返回这个GeoJSON对象,设置`safe=False`以允许非JSON-safe类型作为响应内容。 django-geojson也支持序列化整个GeoQuerySet,这样你可以一次性获取并返回多个地理对象。此外,...

Global site tag (gtag.js) - Google Analytics