Maison >développement back-end >Tutoriel Python >Comment éviter les erreurs de syntaxe JSON lors de la transmission de données de Flask vers JavaScript ?

Comment éviter les erreurs de syntaxe JSON lors de la transmission de données de Flask vers JavaScript ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-28 01:08:09207parcourir

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

Transmission de données de Flask vers JavaScript : gestion des erreurs de syntaxe JSON

Dans une tentative de transmission de données JSON d'une route Flask vers un modèle Jinja , vous pouvez rencontrer une SyntaxError lors de l'appel de JSON.parse sur les données rendues. Cette erreur se produit généralement lorsque des caractères JSON sont échappés lors du rendu.

Pour résoudre ce problème, Flask propose le filtre tojson. Lorsqu'il est appliqué aux données, il transfère automatiquement l'objet Python dans JSON et le marque comme sûr pour le rendu.

Voici un exemple :

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

Filtres pour les cas spéciaux

Si JSON a déjà été vidé dans une chaîne, vous pouvez utiliser le safe filtrez ou enveloppez la chaîne dans Markup avant le rendu.

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

Approche alternative pour l'utilisation de Jinja

Si vous travaillez avec les données directement dans Jinja sans les transmettre à JavaScript, vous n'avez pas besoin de JSON. Transmettez simplement les données Python réelles sans appeler tojson.

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

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn