Lorsque vous essayez de parcourir les données JSON via le code JavaScript rendu dans un modèle Jinja, vous pouvez rencontrer une erreur « SyntaxError : Erreur inattendue du jeton '&'" lors de l'appel de JSON.parse(). Cette erreur est due à l'échappement automatique des données par l'environnement Jinja de Flask lors du rendu dans les modèles HTML.
Pour empêcher ce processus d'échappement et gérer les données au format JSON en JavaScript , Flask fournit le filtre tojson. Il convertit les objets Python en JSON et les marque comme sûrs pour le rendu dans le modèle.
return render_template("tree.html", tree=tree)
<script> var tree = {{ tree|tojson }}; </script>
Si vous ne traitez pas de données JSON ou l'avez déjà converti en chaîne, vous pouvez utiliser le filtre sécurisé ou envelopper la chaîne dans un balisage pour éviter échapper :
return render_template("tree.html", tree=json.dumps(tree))
<script> var tree = {{ tree|safe }}; // or var tree = {{ Markup(json.dumps(tree)) }}; </script>
Si vous avez l'intention d'utiliser les données dans le modèle Jinja lui-même plutôt que de les transmettre à JavaScript, vous pouvez omettre le filtre tojson et utiliser directement les données Python brutes.
return render_template("tree.html", tree=tree)
{% for item in tree %} <li>{{ item }}</li> {% endfor %}
En implémentant ces techniques, vous pouvez utiliser efficacement les données JSON rendues en JavaScript sans rencontrer le problème SyntaxError.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!