Ir al contenido principal
CuteJSON
↑↓ Navegar Enter Seleccionar Esc Cerrar

JSON a TypeScript

Convierte un documento que ya tienes en interfaces de TypeScript, dataclasses de Python, structs de Go o structs de Rust listas para pegar en un proyecto.

Volver a todas las herramientas

Atajos de teclado

Funcionan donde exista la accion correspondiente en esta pagina.

Abrir la paleta de comandos
Ctrl/Cmd + K
Ejecutar la accion principal
Ctrl/Cmd + Enter
Formatear
Ctrl/Cmd + Shift + F
Minificar
Ctrl/Cmd + Shift + M
Copiar la salida
Ctrl/Cmd + Shift + C
Abrir archivo
Ctrl/Cmd + Shift + O
Descargar la salida
Ctrl/Cmd + S
Cerrar este dialogo
Esc
Abrir este dialogo
F1 / ?

Datos locales

Todo lo de abajo se guarda solo en este navegador, en este dispositivo. Nada de esto se envia jamas a ningun sitio, y cerrar este dialogo no hace falta para que eso siga siendo cierto.

Borradores sin guardar
Herramientas con opciones recordadas

Archivos abiertos recientemente

    Todavia no se abrio ningun archivo en este dispositivo.

    Compartir mediante enlace

    El contenido se guarda en la parte del enlace despues del simbolo #, que los navegadores nunca envian a un servidor. Nada de esto se sube a cutejson.com ni a ningun otro lugar.

    Comparte la primera entrada de esta pagina. En una herramienta con mas de una, solo se incluye esa.

    Todavia no hay nada que compartir. Pegue o escriba algo primero.

    Entrada

    Cargar desde una URL

    Obtiene la URL directamente desde tu navegador y carga en este panel el texto que devuelva.

    Salida

    El resultado aparece aqui.

    Funciona por completo en tu navegador. Nada de lo que pegas se sube, y puedes comprobarlo en la pestana Red de tu navegador.

    Sobre esta herramienta

    Los tipos salen de la misma deduccion que usa el generador de esquemas, asi que las dos paginas coinciden sobre tu documento y solo se diferencian en como lo escriben. Un objeto anidado pasa a ser un tipo con nombre en lugar de uno en linea, porque un tipo en linea a tres niveles de profundidad es ilegible y nada mas puede referirse a el. Los nombres vienen de la clave que contiene el valor, en singular dentro de un array, y un nombre ya ocupado recibe un numero para que el resultado siempre compile. Una clave que falta en algun registro se marca como opcional con un signo de interrogacion. Un objeto vacio pasa a ser un registro de unknown en vez de una interfaz vacia, y un array vacio pasa a ser un array de unknown, porque la muestra no dice nada de lo que habria dentro. Todos los numeros son number, porque TypeScript no tiene un tipo entero. Cambiar el lenguaje de salida a Python escribe la misma forma deducida como dataclasses en su lugar: un objeto anidado pasa a ser una clase anidada, nombrada y sin duplicados de la misma manera, y una clave que falta en algun registro pasa a ser Optional con un valor por defecto None, colocada despues de cada campo siempre presente, porque Python exige ese orden. Python mantiene int y float por separado, a diferencia de la salida en TypeScript. Cambiar a Go escribe la misma forma como structs en su lugar, cada campo con una etiqueta json que lleva la clave original, para que el codigo generado vuelva a convertirse exactamente en el documento del que salio. Una clave que falta en algun registro, o que a veces es explicitamente null, pasa a ser un puntero con una etiqueta omitempty solo donde eso importa de verdad, porque Go ya trata un slice o map ausente como nil sin necesitarla. Go tambien mantiene los enteros y los decimales por separado, como int64 y float64. Cambiar a Rust escribe structs con derives de serde: los campos pasan a snake_case con un atributo rename de serde cuando eso cambia el nombre, una clave que falta en algun registro pasa a ser Option con skip_serializing_if para que vuelva a faltar en vez de aparecer como null, y una palabra reservada de Rust que coincide con una clave JSON, como type, se escribe como identificador crudo para que el resultado siga compilando.

    Como se usa

    1. Pega un documento, o varios registros dentro de un array, en el panel de entrada.
    2. Elige un lenguaje de salida y un nombre raiz, ajusta sus opciones y pulsa Generar tipos.
    3. Copia las declaraciones o descargalas como archivo.