Heim >Web-Frontend >js-Tutorial >Wie behebe ich JavaScript-Syntaxfehler beim Parsen von Jinja-gerenderten JSON-Daten?

Wie behebe ich JavaScript-Syntaxfehler beim Parsen von Jinja-gerenderten JSON-Daten?

Susan Sarandon
Susan SarandonOriginal
2024-12-25 16:33:20395Durchsuche

How to Fix JavaScript SyntaxErrors When Parsing Jinja-Rendered JSON Data?

JavaScript SyntaxError with Jinja-Rendered Data

Problem: Beim Versuch, in a gerenderte JSON-Daten zu analysieren Bei einer Jinja-HTML-Vorlage mit JavaScript ist ein SyntaxError aufgetreten, der auf ein unerwartetes „&“ hinweist. Token.

Ursache: Die Jinja-Umgebung von Flask maskiert aus Sicherheitsgründen automatisch Daten, die in HTML-Vorlagen gerendert werden. Dies ist problematisch, wenn JSON-Objekte an JavaScript übergeben werden, da die maskierten Zeichen das Parsen beeinträchtigen.

Lösung: Verwenden Sie den Tojson-Filter oder Markup von Flask, um Daten als sicher zu markieren

Zu Um dieses Problem zu beheben, verwenden Sie den Tojson-Filter von Flask, der Daten in JSON speichert und sie für die Darstellung darin als sicher markiert JavaScript.

return render_template("template.html", data=tree|tojson)

Alternative Ansätze:

  • Sicherer Filter (veraltet): Dieser Filter, obwohl veraltet, markiert Daten als sicher ohne JSON Konvertierung.
var data = {{ tree|safe }};
  • Markup-Wrapper: Das Einschließen der JSON-Zeichenfolge in Markup vor dem Rendern entspricht dem sicheren Filter.
return render_template("template.html", data=Markup(json.dumps(tree)))

Direkte Python-Datennutzung:

Wenn die gerenderten Daten nicht beabsichtigt sind Erwägen Sie für JavaScript, die Python-Daten direkt zu übergeben, ohne JSON-Konvertierung oder Filter zu verwenden.

return render_template("template.html", data=tree)

Implementierung:

In der Jinja-Vorlage:

var data = {{ data }};

for (i in obj) {
   document.write(obj[i].text + "<br />");
}

Alternativ können Jinja-Daten direkt ohne JavaScript-Analyse verwendet werden:

{% for item in tree %}
    <li>{{ item }}</li>
{% endfor %}

Das obige ist der detaillierte Inhalt vonWie behebe ich JavaScript-Syntaxfehler beim Parsen von Jinja-gerenderten JSON-Daten?. 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