Ce que fait cet outil
Un fichier .properties devient du YAML, les points devenant de la structure.
# service
app.name=Demo
app.port=8080
app.debug=true
app:
name: Demo
port: 8080
debug: true
= et : séparent tous deux une clé de sa valeur, les lignes de commentaire commencent par # ou !, et une ligne finissant par une barre oblique inverse se poursuit sur la suivante. Les échappements d’un fichier .properties — \:, \=, \n, \uXXXX — sont décodés : caf\u00e9 arrive en café.
Les clés indexées deviennent des listes
app.hosts[0]=alpha
app.hosts[1]=beta
app:
hosts:
- alpha
- beta
C’est ainsi que Spring écrit une liste dans un fichier qui n’en a pas, et c’est ce que produit le convertisseur YAML vers properties de ce site. À la relecture, pourtant, vous obteniez deux clés littérales nommées hosts[0] et hosts[1] : l’outil ne reconnaissait pas sa propre sortie, et l’aller-retour perdait la séquence. Les indices forment maintenant une séquence quand ils partent de 0 sans trou. Un trou, un doublon, ou un hosts simple à côté laissent les clés exactement telles qu’elles étaient — déplacer une valeur pour combler un trou serait inventer un ordre.
Une clé répétée est refusée
app.port=8080
app.port=3000
Duplicate key "app.port": it already has a different value
Properties.load garde la dernière affectation sans un mot : la première valeur disparaissait. Le sens YAML vers properties refusait déjà d’écrire deux clés qui s’aplatissent sur le même nom ; les accepter ici en silence, c’était le même trou vu de l’autre côté. Deux lignes identiques passent toujours : se répéter n’est l’aveu de rien.
Ce que deviennent les valeurs
- Nombres et booléens sont typés, comme dans les outils CSV :
8080est un nombre,trueun booléen. 007reste une chaîne.1e3aussi, et tout ce dont le texte porte plus que la valeur.- Les scalaires ambigus sont cités.
y,onetNOsont des chaînes pour un lecteur YAML 1.2 et des booléens pour PyYAML, qui lit du YAML 1.1. Citer exactement ceux-là met les deux lecteurs d’accord. - Une valeur vide est une chaîne vide, pas un null : le fichier dit que la clé est là sans rien dedans, et le YAML le dit aussi.
Confidentiel par conception
Tout s’exécute localement dans votre navigateur en JavaScript. Vos données ne sont jamais envoyées sur un serveur, ce qui rend l’outil sûr pour des contenus sensibles, et il fonctionne hors ligne.