Convertidor de estilo (camelCase, snake_case …)
Convierte nombres línea a línea, o renombra todas las claves de un documento JSON, entre camelCase, PascalCase, snake_case, kebab-case y más.
Cómo se usa
- Con «Aplicar a» en «Cada línea del texto», pega o escribe tus nombres en «Entrada», uno por línea. Cada línea se convierte por separado, y se conservan las líneas en blanco y los espacios o tabulaciones al principio o al final de cada línea.
- Elige un estilo en «Convertir a», como camelCase, snake_case o CONSTANT_CASE. La salida se actualiza mientras escribes o cambias una opción, así que no hay ningún botón para convertir.
- Para renombrar las claves de un documento JSON, pon «Aplicar a» en «Claves JSON (valores sin cambios)» y pega el documento completo. También se renombran las claves de los objetos y las matrices anidados.
- En el modo «Cada línea del texto», el recuadro «Todos los estilos de la primera línea» muestra en los diez estilos la primera línea de la entrada que no está en blanco, para que puedas compararlos antes de elegir uno.
- Revisa la «Salida» y haz clic en «Copiar resultado».
Preguntas frecuentes
¿Se envía a algún sitio el texto que introduzco?
No. La conversión se hace en tu navegador con JavaScript, y los nombres o el JSON que introduces no se suben a LeedyBox.
¿Cómo decide la herramienta dónde termina una palabra y empieza la siguiente?
Empieza una palabra nueva cuando a una minúscula o una cifra le sigue una mayúscula (fooBar, user2Name), antes de la última mayúscula de una serie de mayúsculas cuando le sigue una minúscula (XMLHttp se divide en XML y Http) y en cualquier carácter que no sea una letra ni una cifra, como un espacio, un guion bajo, un guion o un punto. El paso de letras a cifras, o de cifras a letras, no empieza por sí solo una palabra nueva, así que base64Encode pasa a ser base64_encode en snake_case y user2name sigue siendo una sola palabra.
¿Por qué no recupero el nombre original al convertirlo de nuevo?
Algunos detalles se pierden por el camino. Cada palabra se vuelve a escribir con las mayúsculas y minúsculas del estilo elegido, así que parseHTML pasa a ser parse_html en snake_case y vuelve como parseHtml en camelCase. Además, un número se une a la palabra anterior en cuanto desaparece el separador: total_amount_2 pasa a ser totalAmount2 en camelCase y después total_amount2 en snake_case. Si necesitas volver exactamente a los nombres de partida, guarda los originales.
¿Por qué ha desaparecido la puntuación y por qué Title Case pone en mayúscula todas las palabras?
Todo carácter que no sea una letra ni una cifra se trata como una separación entre palabras. La puntuación y los símbolos no se copian en la salida, y entre las palabras solo se coloca el separador propio del estilo, si lo tiene, así que «Hello, world!» pasa a ser «hello world» en lower case y don't pasa a ser don t. Title Case pone en mayúscula la inicial de cada palabra, incluidas las cortas como de o la, y pasa a minúsculas el resto de la palabra, así que NASA pasa a ser Nasa e iPhone pasa a ser I Phone. La herramienta está pensada para nombres e identificadores, no para frases.
¿Qué pasa con claves JSON como _id, @type o $ref?
Un símbolo inicial cuenta como separador, así que se elimina: en camelCase, _id pasa a ser id, @type pasa a ser type y $ref pasa a ser ref. Una clave formada solo por símbolos, como $, conserva su nombre. Si dos claves del mismo objeto acaban con el mismo nombre, por ejemplo _id e id, o user_name y userName, la herramienta muestra un error que indica las dos claves y la ruta de su objeto (como $ para el nivel superior) y no convierte nada, de modo que no se sobrescribe ningún valor.
¿El modo JSON cambia algo además de las claves?
El documento se analiza y se vuelve a escribir con una sangría de dos espacios, así que pueden cambiar sus espacios y saltos de línea. Los números pasan por JavaScript: 1.0 se escribe como 1 y 1e2 como 100, los enteros mayores que 9007199254740991 y los decimales con muchas cifras pueden redondearse, y un número demasiado grande para JavaScript, como 1e400, pasa a ser null. Algunas secuencias de escape de las cadenas se escriben como caracteres normales, por ejemplo \u00e9 como é y \/ como /. Las claves que son, o pasan a ser, números enteros menores que 4294967295 sin cero inicial, como "2" o "_3", se colocan delante de las demás claves de su objeto, en orden numérico. Si la misma clave aparece dos veces en un objeto, solo se conserva el último valor, sin ningún aviso. La entrada debe ser JSON estricto, así que los comentarios y las comas finales provocan un error.
¿Funciona con letras acentuadas y escrituras no latinas?
Las letras de cualquier escritura cuentan como caracteres de palabra, y una letra acentuada guardada como un único carácter, como é, se trata igual que cualquier otra letra. Las escrituras que no distinguen mayúsculas y minúsculas, como el coreano, el chino y el japonés, conservan sus caracteres sin cambios, y solo los separadores entre palabras siguen el estilo elegido. El paso a mayúsculas o minúsculas sigue las reglas generales de Unicode, así que ß pasa a ser SS en UPPER CASE y la İ mayúscula pasa a ser una i normal en minúsculas. Para nombres turcos o azerbaiyanos, activa «Letras turcas»: entonces I pasa a ser ı, e i pasa a ser İ. Las marcas combinables, como los signos de tono del tailandés, los signos vocálicos del tailandés y del hindi o un acento guardado como carácter aparte, se mantienen unidas a su letra. El texto escrito sin espacios entre palabras, como el tailandés, el chino o el japonés, solo se divide donde hay espacios u otros separadores.