通过django json对象发送javascript符号不会显示

通过django json对象发送javascript符号不会显示,javascript,django,Javascript,Django,在Django(2.2)中,我试图发送一个json响应,如下所示: 返回JsonResponse(数据,safe=False) 在数据对象中有此值 “单位”:“\u33A5” (立方米) 当我试图使用javascript在我的html页面上打印这个值时,我得到的是这个精确的文本,而不是立方米符号 我无法粘贴javascript代码,因为该符号应显示为echarts图形的y轴标签,但我所做的是: yAxis: { type: 'value', name: data.unit,

在Django(2.2)中,我试图发送一个json响应,如下所示:

返回JsonResponse(数据,safe=False)

数据
对象中有此值

“单位”:“\u33A5”

(立方米)

当我试图使用javascript在我的html页面上打印这个值时,我得到的是这个精确的文本,而不是立方米符号

我无法粘贴javascript代码,因为该符号应显示为echarts图形的y轴标签,但我所做的是:

yAxis: {
    type: 'value',
    name: data.unit,
    nameLocation: 'middle',
},
如果我在选项中硬编码此“\u33A5”而不是
data.unit
,则会显示立方米符号


我的问题是如何使用django JSON的响应序列化或正确打印javascript符号代码?

创建DjangoJSonecoder的子类,并将Sure_ascii设置为False:

从django.core.serializers.json导入DjangoJSONEncoder
类UnicodeJangoJSonencoder(DjangoJSONEncoder):
定义初始(自我,**kwargs):
kwargs['sure_ascii']=False
超级()
将其传递给JSONResponse:

返回JsonResponse(数据,编码器=UnicodeJangoJSONeCoder,安全=False)
注意(如果您不知道的话):safe与符号/unicode无关,只是顶层项可以是dict以外的内容

Javascript部分 我不确定您是如何接收/处理JSON并将其交给eCharts的,但JSON.parse()应该已经正确处理了这种编码:

const jsonData='{“type”:“value”,“unit”:“\u33A5/d”,“nameLocation”:“middle”}
const data=JSON.parse(jsonData)
document.querySelector(“#y轴”).appendChild(document.createTextNode(data.unit))

谢谢。这是非常令人印象深刻的。我仍然得到同样的东西(在这里查看:)。是的,我使用safe=false,因为我发送的不是dict,而是其他东西。但在Django中,您的数据中有什么?您是否有实际符号或此\u编码?如果您在数据库中将其更改为m3,它应该发送实际符号,然后它也将成为JSONResponse中的实际符号。是的,我将此“\u33A5/d”作为
数据[“unit”]=“\u33A5/d”
(实际从数据库tbh检索)