首页 > 解决方案 > 使用 Flask 发送 JSON 并使用 JavaScript 解析

问题描述

我正在尝试使用 Flask 返回 JSON 并将其发送到 html,然后使用 JS 解析它。但是,我的字符串正在被修改,这会引发错误。

我的 JSON 字符串如下所示:

json_to_parse = {"input":"noecall","output":"onecall","count":1},{"input":"oncall","output":"onecall","count":1}

输出:

var b = '{"input":"noecall","output":"onecall","count":1},{"input":"oncall","output":"onecall","count":1}';

它似乎将 " 转换为 " 并且它对 ' 执行相同的操作,但这会导致很多问题。

我的烧瓶返回码是:

return render_template("parse_json.html", json_to_parse = json_to_parse)

我试图用字符串做到这一点:

r = json.dumps(json_to_parse)
loaded_r = json.loads(r)

在 parse.json.html 这就是我获取字符串的方式:

var b = '{{ json_to_parse}}';

还尝试在字符串周围删除和添加 [],结果相同。

任何修复将不胜感激,尝试谷歌并用许多创造性的方式解决这个问题一段时间。但显然没有任何运气。

标签: javascriptpythonjson

解决方案


从您提供的代码中并不完全清楚,但我认为问题在于 Jinja 转义了您的 JSON。在您的parse_json.html中,您必须指定您的数据是“安全的”:

var b = '{{ json_to_parse|safe }}';

有关更多信息,请参阅有关 HTML 转义的文档:https ://jinja.palletsprojects.com/en/2.10.x/templates/#html-escaping和safe过滤器:https ://jinja.palletsprojects.com/en/2.10 .x/模板/#safe


推荐阅读