Django objects的查询结果转化为json的三种方式

第一种方式:
利用seriallizers
这个方法,官网的解释说:将复杂的数据结构变成json、xml或者其他的格式

import json
from django.core import serializers
def area2(request,id):

    data = {}
    province  = serializers.serialize("json",AreaInfo.objects.filter(parea__isnull=True))
    data["data"] = json.loads(province)

    return JsonResponse(data,safe=False)

输出的结果如下:

{
data: [
{
model: "myapp1.areainfo",
fields: {
title: "北京市",
parea: null
},
pk: 110000
},
{
model: "myapp1.areainfo",
fields: {
title: "天津市",
parea: null
},
pk: 120000
},
{
model: "myapp1.areainfo",
fields: {
title: "河北省",
parea: null
},
pk: 130000
},

第二种方法,使用list,这也是三种中最简单的

def area2(request,id):

    data = {}
    province = AreaInfo.objects.filter(parea__isnull=True).values()
    data["data"] = list(province)

    return JsonResponse(data,safe=False)

结果如下:

{
data: [
{
id: 110000,
title: "北京市",
parea_id: null
},
{
id: 120000,
title: "天津市",
parea_id: null
},
{
id: 130000,
title: "河北省",
parea_id: null
},
{
id: 140000,
title: "山西省",
parea_id: null
},

第三种方法比较原始,利用for循环拼装:

def area2(request,id):

    data = AreaInfo.objects.filter(parea__isnull=True)
    list=[]
    for province in data:
        list.append([province.id,province.title])
    data={‘data‘:list}

    return JsonResponse(data,safe=False)

运行结果如下:

{
data: [
[
110000,
"北京市"
],
[
120000,
"天津市"
],
[
130000,
"河北省"
],
[
140000,
"山西省"
],
[
150000,
"内蒙古自治区"
],
[
210000,
"辽宁省"
],

原文地址:http://blog.51cto.com/853056088/2313833

时间: 2024-10-10 00:20:29

Django objects的查询结果转化为json的三种方式的相关文章

js中将字符串转换成json的三种方式

1,eval方式解析,恐怕这是最早的解析方式了.如下: function strToJson(str){ var json = eval('(' + str + ')'); return json; } 记得别忘了str两旁的小括号. 2,new Function形式,比较怪异哦.如下 function strToJson(str){ var json = (new Function("return " + str))(); return json; } 3,使用全局的JSON对象,如

ajax操作json的三种方式

一. 什么是json? 1. JSON是一种轻量级的数据交换格式 2. JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在网络或者程序之间轻松地传递这个字符串,并在需要的时候将它还原为各编程语言所支持的数据格式 JSON最常用的格式是对象的 键值对.例如下面这样: {"firstName": "Brett", "lastName": "McLaughlin"} 具体前台代码如下: <!

js中将字符串转为JSON的三种方式

1.eval方式解析,恐怕这是最早的解析方式了.如下: function strToJson(str){ var json = eval('(' + str + ')'); return json; } 2.new Function形式,比较怪异哦.如下: function strToJson(str){ var json = (new Function("return " + str))(); return json; } 3.使用全局的JSON对象,如下: function str

django获取单表数据的三种方式

django获取单表数据的三种方式 v1 = models.Business.objects.all() # QuerySet ,内部元素都是对象 v2 = models.Business.objects.all().values('id','caption') # QuerySet ,内部元素都是字典 v3 = models.Business.objects.all().values_list('id','caption') # QuerySet ,内部元素都是元组 def business(

MVC web api 返回JSON的几种方式,JSON时间去T的几种方式。

MVC web api 返回JSON的几种方式 1.在WebApiConfig的Register中加入以下代码 1 config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html")); 2.在WebApiConfig的Register中加入以下代码 1 config.Formatters.Remove(config.Formatters.XmlFormatter);

SpringMVC返回json数据的三种方式

SpringMVC返回json数据的三种方式:http://blog.csdn.net/shan9liang/article/details/42181345 上述第三种方法:可能会出现这个jar包没有的情况,引入即可,下面pom引入即可 java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonProcessingException

对比XML JSON INIDG 三种格式

在移动与WEB开发时,避免不了服务端与客户端数据交换,需要从多种格式中找到一种合适的 主要考虑两点,数据量小,解析快速,支持工具丰富 json(JavaScript Object Notation) 一般用于WEB和移动应用的网络数据交换 优点: 可以被JS原生解析 应用广泛,适合于数据交换处理,被于WEB和移动应用开发,所以服务端与客户端一般被要求同时支持JSON 数据量小,易于解析,因为格式简单,只有数组,对象和普通文本 缺点: 肉眼可读性差, 字符类型与数值类型容易混淆 举例 ["str1

Mock服务端:客户端Get请求,返回json数据两种方式

Mock服务端:客户端Get请求,返回json数据两种方式:1,直接在response中返回json数据 2,通过json文件返回: 准备工作: wiremock-body-transformer-1.1.6.jar wiremock-standalone-2.14.0.jar 安装java运行环境(jdk等) 一,直接在response中返回: 说明: mappings : 对应请求request位置 __files : 对应响应reponse位置 mappings中增减文件:get.json

Django框架之ORM的相关操作之多对多三种方式(五)

在之前的博客中已经讲述了使用ORM的多对多关系表,现在进行总结一下: 1.ORM自动帮助我们创建第三张表 2.手动创建第三张表,第三张表使用ForeignKey指向其他的两张表关联起来 3.手动创建第三张表,使用的和ORM帮助我们创建的一样(这种方法暂时先不赘述) 该博客重点讲一下第二种方法:手动创建第三张表,并且第三张表使用ForeignKey指向其他两张表关联起来 以作者和出版的书进行举例子.作者可以写多本书,书也可以有多个作者,书与作者的关系就是多对多的关系 1.创建两张各自的表(作者表和