Saltar al contenido
DeveloperTools

YAML a Properties

Privado

YAML

Properties

Sobre esta herramienta

Pega un application.yml y obtén el application.properties equivalente mientras escribes, o cambia el sentido y convierte un fichero properties en YAML anidado. Las claves se aplanan como lo hace Spring Boot: las claves anidadas se unen con puntos, los elementos de una lista quedan como servers[0] y una clave entre corchetes como "[org.hibernate.SQL]" se mantiene entera. Los ficheros con varios documentos también se convierten —el --- de YAML pasa a ser el separador #--- que Spring Boot lee en los properties— y los comentarios y las líneas en blanco viajan con la clave que tienen debajo.

La parte YAML lee lo que usan de verdad los ficheros de configuración: colecciones en bloque y en línea, cadenas entre comillas, bloques literales y plegados, anclas, alias y claves de fusión <<. Los valores conservan el texto que escribiste, así que version: 1.10 sigue siendo 1.10. En el otro sentido, los valores que YAML interpretaría como otra cosa —on, off, yes, 010, 1.10, una fecha— se escriben entre comillas para que Spring reciba exactamente la misma cadena.

Los problemas se indican por línea y columna en lugar de adivinar: un tabulador en la indentación, una clave indentada bajo un valor, una clave repetida o una propiedad como server.port que además se usa como sección en server.port.ssl, algo que ningún fichero YAML puede expresar. Las propiedades duplicadas se aceptan, como en Java, y una etiqueta bajo el resultado indica cuáles se han sobrescrito.

Nada de lo que pegas se transmite. La página es HTML estático y los dos analizadores se ejecutan en tu pestaña, así que puedes convertir aquí un fichero de configuración lleno de hosts, credenciales y URL internas.

Preguntas frecuentes

¿Se sube mi configuración a algún servidor?

No. La conversión es JavaScript que se ejecuta en tu navegador y no hay ningún endpoint al que enviarla. Puedes desconectarte de la red después de cargar la página y sigue funcionando, así que es seguro usarla con ficheros que contienen contraseñas de base de datos o claves de API.

¿Por qué algunos valores salen entre comillas en el YAML?

Porque Spring Boot lee el YAML con SnakeYAML, que sigue YAML 1.1: on, off, yes y no se convierten en booleanos, 010 es un número octal, 1.10 pasa a ser el número 1.1 y 2024-01-01 se convierte en una fecha. Un fichero properties solo contiene cadenas, así que cualquier valor que cambiaría de tipo se escribe entre comillas. Los enteros normales, true y false se leen igual y se quedan sin comillas.

¿Qué hace «Escapar no ASCII»?

Escribe los caracteres que no son ASCII como escapes \uXXXX en el properties, de modo que é pasa a ser \u00E9. Spring Boot y java.util.Properties leen los ficheros .properties como ISO-8859-1 por defecto, y ahí un carácter acentuado guardado en UTF-8 se convierte en dos caracteres ilegibles. Déjalo activado salvo que sepas que el fichero se lee como UTF-8.

¿Cómo se tratan las listas y las claves con puntos?

Una lista YAML se convierte en propiedades con índice —hosts[0], hosts[1]— y esos índices vuelven a formar una lista en el otro sentido; si falta un número, la lista se compacta, porque una lista YAML no tiene huecos. Una clave que contiene puntos propios, como el nombre de un logger, se escribe entre corchetes: logging.level[org.hibernate.SQL]=DEBUG, que en YAML es "[org.hibernate.SQL]": DEBUG.

¿Qué no admite?

Las claves complejas escritas con "?" y las etiquetas personalizadas, que se leen pero no se reproducen. Los placeholders como ${DB_PASSWORD} se copian como texto, sin resolverlos, y los ficheros de cada perfil se convierten de uno en uno.

¿Es realmente gratis?

Sí, sin cuenta y sin límite de uso. El sitio se financia con anuncios colocados alrededor de la herramienta, nunca dentro de tu área de trabajo.

Flechas para moverte, Enter para abrir, Esc para cerrar