Convertir JSON en INI

Vous pouvez convertir JSON en INI gratuitement et sans compte : déposez le fichier ci-dessus et, une ou deux secondes plus tard, le résultat est prêt à télécharger. La conversion se fait dans votre propre navigateur : le fichier n’est donc jamais téléversé. Cela marche sous Windows, macOS et Linux comme sur iPhone et Android, et continue de marcher si vous coupez le réseau.

  • Où cela s’exécute Dans votre navigateur. Le fichier n’est pas téléversé.
  • Reconstruit INI ne fonctionne pas comme JSON. Il ne s’agit donc pas de la dégradation progressive d’un codec avec perte : ce que INI sait exprimer est reproduit fidèlement, et ce qui n’y a pas d’équivalent ne subsiste pas du tout.
  • Limite de taille Jusqu’à 100 Mo par fichier, gratuitement et sans compte.
  • Bon à savoir L’INI ne gère pas l’imbrication. Tout ce qui dépasse un niveau est aplati en clés séparées par des points.

Jusqu’à 100 fichiers à la fois. Les formats mélangés ne posent pas de problème.

INI a un niveau de regroupement, JSON en a autant qu’on veut

Toute la conversion tient dans cette phrase. Un fichier INI est une liste de sections, chacune contenant des lignes plates clé-valeur, et il n’existe aucun moyen d’imbriquer une section dans une section. Il n’a pas de spécification — il date de 1985, précède l’idée qu’un format de configuration en aurait besoin une, et chaque analyseur a des opinions légèrement différentes sur les guillemets et les commentaires — c’est pourquoi le registre le marque comme hérité plutôt que comme actuel.

JSON imbrique sans limite. La conversion doit donc projeter un arbre sur deux niveaux, et la question intéressante n’est pas de savoir si cela fonctionne mais ce qu’elle fait du troisième niveau et de tout ce qui se trouve en dessous. La réponse courte est qu’elle conserve les données et abandonne la structure, ce qui est le bon compromis dans le sens où un fichier de configuration voyage en général.

Le premier niveau du JSON devient les en-têtes de section

Chaque clé de premier niveau dont la valeur est un objet devient une section : un fichier JSON contenant des objets server, logging et database produit [server], [logging] et [database], avec les clés à l’intérieur écrites en dessous. Pour des réglages écrits à l’origine par une personne, c’est très souvent une correspondance exacte, et la sortie est le fichier que vous auriez tapé.

Les clés de premier niveau tenant une valeur simple — un drapeau de débogage, un numéro de version — sont écrites au-dessus du premier en-tête de section plutôt qu’après. Ce n’est pas un choix de style : une section INI s’approprie chaque ligne qui la suit jusqu’à l’en-tête suivant, de sorte qu’une clé nue écrite plus bas deviendrait membre de la section précédente et changerait de sens.

Sous le deuxième niveau, le nom de la clé porte la structure

Un troisième niveau d’imbrication est écrit en clé pointée. Si server contient un objet tls contenant un chemin de certificat, la sortie est une section [server] contenant une ligne tls.cert. Rien n’est écarté, et le chemin qui ramène à la forme d’origine est inscrit dans le nom de la clé.

Certains analyseurs comprennent cette convention et reconstituent l’imbrication ; la plupart ne le font pas, et traitent tls.cert comme une clé qui se trouve contenir un point. L’un ou l’autre convient en général pour lire un réglage. Ce qui ne l’est pas, c’est l’aller-retour en général — une clé JSON qui contient réellement un point devient indiscernable d’un niveau d’imbrication, et aucun lecteur ne peut dire laquelle des deux elle était.

Un JSON null s’écrit en valeur INI vide

La clé survit et la valeur ne survit pas : un null sort en clé, signe égal et rien. C’est ce qui se rapproche le plus d’une valeur non définie en INI, puisque le format n’a ni null ni moyen d’en exprimer un.

Ce que votre analyseur en fait varie, et cela mérite dix secondes pour s’en assurer. Le configparser de Python renvoie une chaîne vide. Certains lecteurs renvoient eux aussi la chaîne vide mais la traitent comme false dans un contexte booléen, et quelques-uns ignorent la clé. Si la différence entre « réglé à rien » et « non réglé » pilote le comportement de l’application, supprimez ces lignes à la main plutôt que de livrer l’ambiguïté.

Les tableaux deviennent des clés numérotées, ce que les programmes demandent rarement

INI n’a pas de liste. Un tableau de trois hôtes autorisés devient trois lignes indexées 0, 1 et 2, ce qui préserve chaque valeur et ne correspond à presque aucune convention d’analyseur. Les formats qui acceptent des listes attendent en général une seule ligne avec les valeurs séparées par des virgules, et quelques-uns attendent la même clé répétée.

C’est la partie de la conversion qui mérite d’être modifiée dans le JSON avant l’opération plutôt que dans l’INI après. Joignez le tableau en une seule chaîne avec le séparateur qu’attend l’application, convertissez, et la sortie est une ligne que l’analyseur lit nativement. Faire la chose dans l’autre sens oblige à éditer à la main chaque groupe numéroté.

Quand le JSON est une liste d’enregistrements, INI est la mauvaise destination

Un tableau JSON de premier niveau produit des sections nommées d’après les positions du tableau : [0], [1], [2], chacune contenant les clés d’un enregistrement. Le fichier est syntaxiquement un INI valide et il n’existe aucun programme sensé qui le lise.

Cette sortie est un signal plutôt qu’un échec. INI est un format de configuration — un ensemble de réglages nommés pour une seule application — et une liste d’enregistrements est une donnée. Si ce que vous avez est une liste, CSV ou tableur est la cible si une personne doit la lire, et JSON ou base de données si c’est un programme. La conversion ne refuse pas, parce qu’un fichier à un enregistrement est un objet légitime à vouloir, mais une suite de sections numérotées signifie que la réponse à la question initiale était non.

Un saut de ligne dans une valeur est neutralisé, et non écrit tel quel

Quasiment toute valeur est écrite exactement comme elle se présente — un chemin, un nom d’hôte, un port, un drapeau — ce qui garde au fichier l’apparence d’un fichier qu’une personne aurait tapé. Trois types de valeurs ne le sont pas. Une valeur contenant un saut de ligne, une valeur qui commence et finit déjà par un guillemet, et une valeur qui a un espace ou une tabulation à l’une ou l’autre extrémité sont entourées de guillemets doubles, et à l’intérieur de ces guillemets un saut de ligne s’écrit barre oblique et n, un retour chariot barre oblique et r, et une barre oblique deux barres obliques.

Cette neutralisation est récente et elle a remplacé un véritable défaut. Jusqu’au 9 août 2026, une chaîne JSON contenant un saut de ligne était écrite telle quelle en vrai saut de ligne, si bien que le JSON {"app":{"motd":"hello\n[admin]\npassword=secret","plain":"x"}} produisait une section [admin] qui n’apparaît nulle part dans la source — et la clé écrite après, plain, était relue à l’intérieur de cette section inventée plutôt que dans app. Une valeur pouvait déplacer ses voisines. Les deux moitiés de ce convertisseur s’accordent désormais sur la neutralisation, donc une valeur multi-ligne survit à l’aller-retour. Un autre programme qui lirait le fichier peut ne pas comprendre la neutralisation et vous redonner les deux caractères au lieu d’un saut de ligne, si bien qu’un certificat ou un script embarqué a toujours sa place dans son propre fichier, l’INI pointant sur le chemin.

Les types reviennent en texte, et le lecteur devine

INI stocke tout en texte. Un JSON true s’écrit true, un JSON 8080 s’écrit 8080, et ce que ces valeurs signifient ensuite est décidé par ce qui lira le fichier. Le configparser de Python rend la chose explicite avec getboolean et getint, et il accepte yes, on et 1 pour true également.

Cela mérite de savoir dans quel sens va la devinette de votre analyseur avant de se fier à une valeur. Une chaîne de version 1.0 est du texte dans le JSON et sera très probablement relue comme un nombre, et un identifiant de version avec des zéros initiaux les perd dès que quelque chose le traite comme un entier. Quand cela compte, la correction se fait dans l’application qui lit le fichier plutôt que dans le fichier lui-même.

Les commentaires s’ajoutent une fois l’INI obtenu

La sortie ne porte aucun commentaire, parce que le JSON n’en a pas à donner. INI en accepte — une ligne commençant par un point-virgule ou un dièse — et ce convertisseur les respecte tous les deux quand il lit dans l’autre sens.

Puisque l’intérêt de déplacer des réglages dans un INI est en général qu’une personne va les éditer, les lignes de commentaire valent la peine d’être ajoutées immédiatement : quelles valeurs sont spécifiques à l’environnement, laquelle doit correspondre à une valeur ailleurs, et quelle section l’application ignore complètement. C’est précisément l’information qu’un fichier JSON généré n’a jamais pu porter.

La conversion JSON en INI tourne là où se trouve le fichier

C’est du JavaScript dans l’onglet de votre navigateur. Le fichier n’est pas téléversé, il n’y a ni compte ni file d’attente, et le niveau gratuit accepte jusqu’à 100 Mo, ce qui est de plusieurs ordres de grandeur supérieur à n’importe quel fichier de configuration.

L’argument de confidentialité n’a rien de décoratif pour cette paire. Les fichiers de réglages contiennent des chaînes de connexion à la base, des points d’accès d’API, des noms d’hôtes internes et, plus souvent que quiconque ne l’admet, un mot de passe qui aurait dû être une variable d’environnement. Convertir un tel fichier sur un serveur distant signifie remettre tout cela à un tiers sans aucun bénéfice, et ici il n’y a rien à remettre.

Comment convertir JSON en INI

  1. Déposez votre fichier JSON sur cette page, ou cliquez pour en choisir un.
  2. Choisissez INI comme destination. La conversion se fait dans votre navigateur et le fichier n’est pas téléversé.
  3. Téléchargez le fichier INI terminé.

JSON et INI : ce qui change

JSON face à INI
JSONINI
Nom completJavaScript Object NotationConfiguration INI
Extension de fichier.json.ini, .cfg, .conf
Type de médiaapplication/jsontext/plain
Première publication20011985
SpécificationRFC 8259
LicenceStandard ouvertStandard ouvert
Situation actuelleActuelAncien, encore lu partout
S’ouvre dans un navigateurTous les navigateursAucun navigateur
Envisagé à la placeXML, YAML, NDJSONTOML, YAML

Ouvrir le résultat

Aucun navigateur ne lit INI. C’est le moins portable des deux : mieux vaut s’assurer que le destinataire l’accepte avant de l’envoyer.

Visual Studio Code lit aussi bien JSON que INI : vous pouvez comparer le résultat à l’original sans second logiciel.

À quoi sert chaque format

Les deux visent des usages différents : JSON l’échange entre programmes et le web, INI la retouche. Cela mérite d’être pesé avant, car ce qui justifie l’un est souvent ce qui rend l’autre malcommode.

JSON a ete publié en 2001. La spécification est RFC 8259, et elle mérite d’être connue si le fichier doit survivre à l’outil qui l’a écrit.

INI date de 1985. Notepad et Visual Studio Code le lisent.

INI a été publié en 1985 et JSON en 2001. Le plus ancien est en général le fichier le plus sûr à remettre ; le plus récent fait le même travail en moins d’octets.

De JSON à INI : questions fréquentes

Mon fichier JSON est-il téléversé quelque part ?

Non. Cette conversion se fait entièrement dans votre navigateur : le fichier ne quitte donc pas votre appareil. Vous pouvez le vérifier vous-même — ouvrez l’onglet réseau des outils de développement et convertissez quelque chose. Vous verrez la page elle-même et les requêtes de statistiques et de publicité qui financent ce service, et pas une seule qui transporte votre fichier.

Convertir JSON en INI est-il gratuit ?

Oui. Pas de compte, pas de filigrane et pas de quota journalier à dépenser : cela tourne sur votre propre machine, vous pouvez donc revenir autant de fois que vous voulez. Le navigateur traite des fichiers jusqu’à 100 Mo, 100 à la fois.

Y a-t-il une perte de qualité en convertissant JSON en INI ?

JSON et INI décrivent le contenu de façons radicalement différentes. La conversion est donc une reconstitution et non une copie : fidèle, mais pas identique octet pour octet. L’INI ne gère pas l’imbrication. Tout ce qui dépasse un niveau est aplati en clés séparées par des points.

Un fichier INI s’ouvre-t-il dans un navigateur ?

Aucun navigateur ne lit INI. C’est le moins portable des deux : mieux vaut s’assurer que le destinataire l’accepte avant de l’envoyer.

En savoir plus sur ces formats