Beim Versuch, über JSON-Daten durch in einer Jinja-Vorlage gerenderten JavaScript-Code zu iterieren, kann es zu einem „SyntaxError“ kommen : Unerwarteter Token-Fehler „&“ beim Aufruf von JSON.parse(). Dieser Fehler entsteht durch das automatische Escapen von Daten durch die Jinja-Umgebung von Flask beim Rendern in HTML-Vorlagen.
Um diesen Escape-Prozess zu verhindern und die Daten als JSON in JavaScript zu behandeln , Flask stellt den Tojson-Filter bereit. Es konvertiert Python-Objekte in JSON und markiert sie als sicher zum Rendern in der Vorlage.
return render_template("tree.html", tree=tree)
<script> var tree = {{ tree|tojson }}; </script>
Wenn Sie nicht mit JSON-Daten arbeiten oder Wenn Sie ihn bereits in einen String konvertiert haben, können Sie den sicheren Filter verwenden oder den String in Markup umschließen, um dies zu verhindern Escapeing:
return render_template("tree.html", tree=json.dumps(tree))
<script> var tree = {{ tree|safe }}; // or var tree = {{ Markup(json.dumps(tree)) }}; </script>
Wenn Sie beabsichtigen, die Daten innerhalb der Jinja-Vorlage selbst zu verwenden, anstatt sie an JavaScript zu übergeben, können Sie den Tojson-Filter weglassen und verwenden die rohen Python-Daten direkt.
return render_template("tree.html", tree=tree)
{% for item in tree %} <li>{{ item }}</li> {% endfor %}
Durch die Implementierung dieser Techniken können Sie gerenderte JSON-Daten effektiv in JavaScript verwenden, ohne auf das zu stoßen SyntaxError-Problem.
Das obige ist der detaillierte Inhalt vonWie behebe ich „SyntaxError: Unexpected token '&'' beim Parsen von JSON in Jinja-Vorlagen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!