Heim >Backend-Entwicklung >Python-Tutorial >Wie vermeide ich JSON-Syntaxfehler beim Übergeben von Daten von Flask an JavaScript?

Wie vermeide ich JSON-Syntaxfehler beim Übergeben von Daten von Flask an JavaScript?

Susan Sarandon
Susan SarandonOriginal
2024-12-28 01:08:09213Durchsuche

How to Avoid JSON Syntax Errors When Passing Data from Flask to JavaScript?

Übergabe von Daten von Flask an JavaScript: Umgang mit JSON-Syntaxfehlern

Bei einem Versuch, JSON-Daten von einer Flask-Route an eine Jinja-Vorlage zu übergeben , kann beim Aufruf von JSON.parse für die gerenderten Daten ein SyntaxError auftreten. Dieser Fehler tritt normalerweise auf, wenn JSON-Zeichen beim Rendern maskiert werden.

Um dieses Problem zu beheben, bietet Flask den Filter tojson an. Bei der Anwendung auf Daten speichert es das Python-Objekt automatisch in JSON und markiert es als sicher zum Rendern.

Hier ist ein Beispiel:

return render_template('tree.html', tree=tree)
<script>
    var tree = {{ tree|tojson }};
</script>

Filter für Sonderfälle

Wenn JSON bereits in eine Zeichenfolge gedumpt wurde, können Sie die verwenden sicher Filtern oder umschließen Sie die Zeichenfolge vor dem Rendern in Markup.

return render_template('tree.html', tree=json.dumps(tree))
<script>
    var tree = {{ tree|safe }};
</script>

Alternativer Ansatz für die Verwendung von Jinja

Falls Sie mit den Daten direkt in Jinja arbeiten, ohne sie an JavaScript zu übergeben, benötigen Sie kein JSON. Übergeben Sie einfach die tatsächlichen Python-Daten, ohne tojson aufzurufen.

return render_template('tree.html', tree=tree)

Das obige ist der detaillierte Inhalt vonWie vermeide ich JSON-Syntaxfehler beim Übergeben von Daten von Flask an JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn