Django 序列化对象返回数组

Posted

技术标签:

【中文标题】Django 序列化对象返回数组【英文标题】:Django serialize object return array 【发布时间】:2021-10-13 08:27:11 【问题描述】:

Django 序列化对象返回一个数组,我无法用 js 在模板中获取它

我的观点.py:

def MyExempleView(request):
    data = serializers.serialize("json", myModel.objects.all())
    context = 
        "data" : json.loads(data)
    
    return render(request, 'consulta/myTemplateExemple.html', context=context)

我的模板:

 data|json_script:"data" 

if ($("#data").length) 
    var data= JSON.parse(document.getElementById('data').textContent);

我的结果示例:

"["key": "value", "key2": "value2"]"

【问题讨论】:

你如何打印数据? 【参考方案1】:

我解决了使用 python json 加载和转储 json 的问题:

在视图中:

"data" : data

在模板中的js中:

var data = JSON.parse(document.getElementById('data').textContent)
jsonResponse = JSON.parse(data)

【讨论】:

你不能省略json.dumps(json.loads(...)),从而使用"data": data吗? 我试过了,不行,现在可以了,tks 但通常dumpsloads 是彼此的倒数。因此,如果两者都被删除,那么人们会期望简单地传递数据没有任何dumps/loadss 会产生相同的数据。 现在说得通了

以上是关于Django 序列化对象返回数组的主要内容,如果未能解决你的问题,请参考以下文章

将 JSON 数组从 Django 视图返回到模板

如何处理 API 有时将属性作为数组返回,有时作为对象返回?

在单个 GraphQL 突变(graphene-django)中返回已删除对象的数组

如何将 JSON 返回反序列化为从 RestSharp 调用到 API 的对象数组?

string对象中的哪些方法返回数组?

使用 Json.net 反序列化 JSON 对象数组