Qué hace esta herramienta
Un archivo .properties se vuelve YAML, y los puntos se vuelven estructura.
# servicio
app.name=Demo
app.port=8080
app.debug=true
app:
name: Demo
port: 8080
debug: true
= y : separan igualmente una clave de su valor, las líneas de comentario empiezan por # o !, y una línea que acaba en barra invertida sigue en la siguiente. Los escapes de un archivo .properties —\:, \=, \n, \uXXXX— se decodifican, así que caf\u00e9 llega como café.
Las claves indexadas se vuelven listas
app.hosts[0]=alpha
app.hosts[1]=beta
app:
hosts:
- alpha
- beta
Así escribe Spring una lista en un archivo que no tiene listas, y es lo que produce el conversor de YAML a properties de este sitio. Al leerlo, en cambio, obtenías dos claves literales llamadas hosts[0] y hosts[1]: la herramienta no reconocía su propia salida, y la ida y vuelta perdía la secuencia. Ahora los índices forman una secuencia cuando arrancan en 0 sin huecos. Un hueco, un repetido, o un hosts a secas al lado dejan las claves tal como estaban: mover un valor para tapar un hueco sería inventar un orden.
Una clave repetida se rechaza
app.port=8080
app.port=3000
Duplicate key "app.port": it already has a different value
Properties.load se queda con la última asignación sin decir palabra, de modo que el primer valor se esfumaba. El sentido de YAML a properties ya se negaba a escribir dos claves que se aplanan en el mismo nombre; aceptarlas aquí en silencio era el mismo agujero visto del otro lado. Dos líneas idénticas siguen pasando: repetirse no confiesa nada.
En qué se convierten los valores
- Números y booleanos se tipan, como en las herramientas de CSV:
8080es número,truebooleano. 007se queda en cadena.1e3también, y todo aquello cuyo texto lleva más que su valor.- Los escalares ambiguos se entrecomillan.
y,onyNOson cadenas para un lector de YAML 1.2 y booleanos para PyYAML, que lee YAML 1.1. Entrecomillar exactamente esos pone de acuerdo a los dos lectores. - Un valor vacío es una cadena vacía, no un nulo: el archivo dice que la clave está ahí sin nada dentro, y el YAML dice lo mismo.
Privado por diseño
Todo se ejecuta localmente en tu navegador con JavaScript. Tus datos nunca se suben a un servidor, lo que hace que la herramienta sea segura para contenido sensible y funcione sin conexión.