YamlBox

Générateurs de codes · 5 minutes de lecture

JSON à SQL : d'une charge utile à une table, vous pouvez

Parfois, le chemin le plus rapide pour passer d'un fichier JSON à une requête SQL consiste à créer une table à partir de celui-ci. La conversion de JSON en SQL produit le schéma et les lignes en une seule étape, ce qui est idéal pour les montages, l'analyse des rayures et l'amorçage d'une base de données locale — à condition de le garder en dehors de votre historique de migration.

Mis à jour

Comment les types sont mappés de JSON à SQL

  • Cordes → `TEXT` (`VARCHAR(n)` quand on connaît le budget longueur).
  • Nombres entiers → `INTEGER` / `BIGINT`, décimales → `NUMERIC` plutôt que virgule flottante, notamment pour l'argent.
  • Booléens → `BOOLEAN`.
  • Objets et tableaux imbriqués → `JSONB` dans PostgreSQL, `JSON` dans MySQL 8 — ou normalisez-les dans des tables enfants lorsque les données sont là pour rester.
  • Clés manquantes → colonnes nullables, jamais une valeur par défaut qui simule une valeur.

Une table générée est un excellent point de départ et une terrible migration. Écrivez le schéma souhaité, puis utilisez le SQL généré comme référence pour les noms et types de colonnes.

S'échapper n'est pas facultatif

Les chaînes en JSON contiennent généralement des apostrophes — `O’Brien`, `it's done` — et collées à la main dans SQL, elles terminent la chaîne littéralement plus tôt et interrompent l'instruction. Les instructions INSERT générées doublent correctement chaque guillemet, ce qui est la chose la plus utile que la conversion fasse pour vous. Pour les insertions groupées, enveloppez les lignes dans une seule instruction afin que la base de données puisse effectuer l'écriture par lots au lieu de valider par ligne.

Bons usages, mauvais usages

Les données d'appareil pour les tests, une copie de travail locale d'une exportation API, l'amorçage d'un environnement de démonstration et la réponse à une question ponctuelle en SQL bénéficient tous d'une conversion JSON en SQL. Ce n'est pas le cas de la gestion des schémas de production : les migrations nécessitent une révision, des index, des contraintes et un chemin de restauration. Générez le tableau, puis écrivez manuellement la migration livrée.

Tableaux et objets : aplatir ou stocker ?

Si un tableau est une liste fixe de scalaires, une table enfant avec une clé étrangère simplifie les requêtes. S'il s'agit d'une charge utile véritablement dynamique (corps de webhook, métadonnées tierces), la stocker sous `JSONB` et indexer les chemins que vous interrogez est le choix pragmatique. Décidez de la manière dont vous allez l'interroger : tout ce que vous filtrez ou rejoignez appartient à une colonne.

Exécutez-le dans le navigateur

Les exportations de bases de données et les dumps API sont exactement les charges utiles qui ne doivent pas être téléchargées vers un service inconnu. La conversion JSON en SQL se produit ici entièrement dans la page, de sorte que la déclaration que vous copiez est construite à partir de données qui n'ont jamais quitté votre ordinateur et que l'outil fonctionne toujours hors ligne.

JSON à SQL — questions fréquemment posées

Quel dialecte SQL dois-je générer ?

Ciblez la base de données sur laquelle vous allez réellement l'exécuter : PostgreSQL pour `JSONB`, MySQL 8 pour `JSON` et les identifiants backticked, SQLite pour un travail local léger. Les règles de citation et les noms de types diffèrent entre eux, donc la régénération par dialecte vaut mieux que l'adaptation manuelle.

Puis-je insérer JSON tableaux dans une seule colonne SQL ?

Oui, dans les bases de données avec un type de colonne JSON : le tableau devient `JSONB` ou `JSON` et vous l'interrogez avec des opérateurs de chemin. Si vous devez joindre ou regrouper les éléments, une table enfant est le meilleur modèle.

Le SQL généré est-il à l’abri de l’injection ?

Les instructions générées vous permettent d'être exécutées là où vous le souhaitez, et les valeurs de chaîne sont échappées sous forme de littéraux. Elles ne remplacent pas les requêtes paramétrées dans le code de l'application : ne créez jamais de requêtes par concaténation sur un serveur.

Outils mentionnés dans cet article

Parcourez la liste complète des 19 outils

Plus d'articles à lire

5 minutes de lecture

CSV à JSON : d’un tableur aux données structurées

Convertissez CSV en JSON dans le navigateur : explication des lignes d'en-tête, des délimiteurs, des règles de citation et de la gestion des types, avec les exportations de feuilles de calcul qui cassent les analyseurs.

Tous les 19 messages →