我是JavaScript新手。我使用的是Flask和Python,Flask模板使用Jinja模板库来渲染模板。我通过API调用得到了我的数组。 我的数组看起来像这样:
array = [{
country: 'Macediona',
city: ['Skopje','Ohrid', 'Bitola']
}, {
country: 'Switzerland',
city: ['Bazel', 'Zurich', 'Zeneva']
}, {
country: 'Srbia',
city: ['Nis', 'Belgrad']
}];
我可以使用{{array}}在HTML模板中传递此数组,我也可以根据Flask文档在Javascript中执行相同操作。
但是当我用Javascript做的时候:
var list = {{ array }}
我有错误:未捕获的SyntaxError:意外的令牌&amp ;. 从控制台调试我看到列表与其他"事物"在键和值之前和之后。
array = [{
'country': ''Macediona'',
....
如何在Javascript中获得干净的数组?
答案 0 :(得分:1)
出于安全原因,Jinja正在逃避代码中的html
'
是'
有关jinja的html转义的信息,请点击此处: http://jinja.pocoo.org/docs/2.10/templates/#html-escaping
启用自动转义后,默认情况下会转义所有内容,但明确标记为安全的值除外。
因此,为了防止Jinja逃脱您的代码,您可以使用Jinja的内置过滤器
http://jinja.pocoo.org/docs/2.10/templates/#safe
要将代码标记为安全,请使用safe
过滤器。
var list = {{ array | safe }}
答案 1 :(得分:0)
解码字符串
function decodeHtml(html) {
return $('<div>').html(html).text();
}
decodeHtml(&#34; [{&amp;#3 9; country&#39;:&#39;&amp;#3 9; Macediona&amp;#3 9;&#39;}]&#34;)将给
"[{'country': ''Macediona''}]"