Django 正在从 objects.all() 生成一个无用的 JSON 对象

Posted

技术标签:

【中文标题】Django 正在从 objects.all() 生成一个无用的 JSON 对象【英文标题】:Django is producing a useless JSON object from objects.all() 【发布时间】:2014-05-27 21:57:13 【问题描述】:

为了返回纯 JSON 对象,我构建了一个 Django 视图:

from django.core import serializers
import json
def testjson(request):
    all_objects = list(Message.objects.all())

    to_json = serializers.serialize('json', all_objects)

    return HttpResponse(json.dumps(to_json), mimetype='application/json')
上面的

to_json 最终看起来像这样:

\"employees\": [
 \"firstName\":\"John\" , \"lastName\":\"Doe\" , 
 \"firstName\":\"Anna\" , \"lastName\":\"Smith\" , 
 \"firstName\":\"Peter\" , \"lastName\":\"Jones\" 
]

这对\ 完全没用,我不知道如何摆脱它们。 我已经尝试过了,但 \ 触发了转义字符:

to_json = to_json.replace('\', '')

如何更改 JSON 对象以仅将 \" 替换为 "

【问题讨论】:

您是否在交互式 Python shell 中对此进行评估?如果是这样,这可能是一个伪影,因为 shell 会自动转义连字符。 【参考方案1】:

您不需要调用json.dumps()serialize() 会为您的回复制作一个 json 字符串:

from django.core import serializers

def testjson(request):
    data = serializers.serialize('json', Message.objects.all())
    return HttpResponse(data, mimetype='application/json')

另见:

<Django object > is not JSON serializable

【讨论】:

以上是关于Django 正在从 objects.all() 生成一个无用的 JSON 对象的主要内容,如果未能解决你的问题,请参考以下文章

django objects.all 怎么选择数据

django 模型中 e=Emp.objects.all() 中的“对象”是啥

Django Model.objects.all().delete() 未完成

Django form queryset=model.objects.all() 加载缓慢

在 Django 模板中通过 Item.objects.all 显示图像

如何在 django 中显示来自 chartjs 视图的数据?