問題: でレンダリングされた JSON データを解析しようとしたときJavaScript を使用した Jinja HTML テンプレートで、予期しない '&' を示す SyntaxError が発生しましたtoken.
原因: Flask の Jinja 環境は、セキュリティ上の理由から、HTML テンプレートでレンダリングされたデータを自動的にエスケープします。これは、JSON オブジェクトを JavaScript に渡すときに、エスケープ文字が解析を妨げるため問題になります。
解決策: Flask の tojson フィルターまたはマークアップを使用して、データを安全としてマークします
この問題を解決するには、データを JSON にダンプし、JSON 内でレンダリングしても安全であるとマークする Flask の tojson フィルターを利用します。 JavaScript.
return render_template("template.html", data=tree|tojson)
代替アプローチ:
var data = {{ tree|safe }};
return render_template("template.html", data=Markup(json.dumps(tree)))
直接の Python データ使用法:
レンダリングされたデータが JavaScript 用ではない場合は、JSON 変換やフィルターを使用せずに Python データを直接渡すことを検討してください。
return render_template("template.html", data=tree)
実装:
神社にてtemplate:
var data = {{ data }}; for (i in obj) { document.write(obj[i].text + "<br />"); }
あるいは、Jinja データを JavaScript 解析せずに直接利用することもできます:
{% for item in tree %} <li>{{ item }}</li> {% endfor %}
以上がJinja でレンダリングされた JSON データを解析する際の JavaScript 構文エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。