如何访问htmlpage的javascript部分中django python返回的JSON数据

如何访问htmlpage的javascript部分中django python返回的JSON数据,javascript,python,django,Javascript,Python,Django,我想知道如何在html页面的javascript部分访问django python返回的JSON数据。这是我从服务器端获取的JSON数据,我已经登录到浏览器控制台 {“movieName”:“复仇者”,“发行年”:“2019”,“票房”:“2.3B”} 68 这是我的示例代码 Javascript部分 var dataFromDjango = "{{ myData | escapejs | safe }}"; console.log(dataFromDjango); var t = Object

我想知道如何在html页面的javascript部分访问django python返回的JSON数据。这是我从服务器端获取的JSON数据,我已经登录到浏览器控制台

{“movieName”:“复仇者”,“发行年”:“2019”,“票房”:“2.3B”}

68

这是我的示例代码

Javascript部分

var dataFromDjango = "{{ myData | escapejs | safe }}";
console.log(dataFromDjango);
var t = Object.keys(dataFromDjango).length;
console.log(t);
Python代码

context = {}
context['movieName'] = 'Avengers'
context['releaseYear'] = str(2019)
context['boxOffice'] = '2.3B'

jsonData = json.dumps(context)
return render(request, "InterfacePage.html", {"myData" : jsonData})

我希望键的长度为3。

您需要将其从JSON字符串解析为JS对象。注意,此处不应使用
escapejs

var dataFromDjango = JSON.parse("{{ myData | safe }}");

您需要将其从JSON字符串解析为JS对象。注意,此处不应使用
escapejs

var dataFromDjango = JSON.parse("{{ myData | safe }}");

在这里,您将JSON blob表示为字符串。事实上,你写了这样的东西:

"{\"movieName\": \"Avengers\", \"releaseYear\": \"2019\", \"boxOffice\": \"2.3B\"}";
在JavaScript文件中。
Object.keys(dataFromDjango)将返回字符串的索引,因此数组将从
0
68`

您可以通过以下方式将JSON blob呈现给JavaScript:

var dataFromDjango = JSON.parse('{{ myData | safe }}');
var-dataFromDjango=JSON.parse({{myData | safe}}})

因此,这里我们让JavaScript将字符串转换回JavaScript对象,这可能是最安全的选择,因为如果字符串包含prombe,则JavaScript将在解析JSON blob时出错。

您在这里将JSON blob表示为字符串。事实上,你写了这样的东西:

"{\"movieName\": \"Avengers\", \"releaseYear\": \"2019\", \"boxOffice\": \"2.3B\"}";
在JavaScript文件中。
Object.keys(dataFromDjango)将返回字符串的索引,因此数组将从
0
68`

您可以通过以下方式将JSON blob呈现给JavaScript:

var dataFromDjango = JSON.parse('{{ myData | safe }}');
var-dataFromDjango=JSON.parse({{myData | safe}}})

因此,这里我们让JavaScript将字符串转换回JavaScript对象,这可能是最安全的选择,因为如果字符串包含prombe,则JavaScript将在解析JSON blob时出错。

这里您将其作为字符串而不是JSON blob注入。您应该这样编写
var-dataFromDjango={{myData | escapejs | safe}所以没有引号。如果我省略引号“Uncaught SyntaxError:Invalid or unexpected token”我会得到这个错误。啊,很抱歉,您还需要删除
escapejs
,或者可能更安全,在接收端使用
json.parse
。您在这里将其作为字符串而不是json blob注入。您应该这样编写
var-dataFromDjango={{myData | escapejs | safe}所以没有引号。如果我省略引号“Uncaught SyntaxError:Invalid or unexpected token”(未捕获的语法错误:无效或意外标记),我会遇到这个错误。啊,对不起,您还需要删除
转义js
,或者可能更安全,在接收端使用
json.parse