Convertidor de JSON a Swift Codable

Pega la respuesta de tu API y obtén al instante los struct Swift listos para JSONDecoder. La herramienta detecta campos opcionales, anidados, arrays y fechas ISO 8601, y genera los CodingKeys cuando el nombre del JSON no coincide con el de Swift. Todo ocurre en tu navegador: tu JSON no sale de tu equipo.

JSON de entrada
Código Swift

    🔒 Todo se procesa en tu navegador. Tu JSON no se envía a ningún servidor.

    Qué hace exactamente

    • Crea un struct (o final class) por cada objeto, con nombres en camelCase.
    • Marca como opcional cualquier campo que sea null o que falte en algún elemento de un array.
    • Unifica los objetos de un array: si pegas varios elementos, deduce mejor los opcionales.
    • Si un campo mezcla tipos (por ejemplo, número y texto), añade un enum JSONValue.
    • Puede usar keyDecodingStrategy = .convertFromSnakeCase en lugar de CodingKeys.

    Limitaciones

    • JSON no distingue 3 de 3.0: un número sin decimales se interpreta como Int.
    • Un campo que solo vale null en tu ejemplo no permite saber su tipo. Se marca con un TODO.
    • Las fechas con milisegundos no las lee .iso8601 y requieren una estrategia personalizada.
    • Revisa siempre el resultado con la documentación real de tu API.

    Preguntas frecuentes

    ¿Qué diferencia hay entre Codable y Decodable?

    Codable es Decodable + Encodable. Si solo lees datos de una API, Decodable basta.

    ¿Cuándo uso CodingKeys y cuándo convertFromSnakeCase?

    convertFromSnakeCase es cómodo si todas las claves son snake_case. Si hay claves irregulares, los CodingKeys son más explícitos y seguros.

    ¿Por qué algunos campos salen como opcionales?

    Porque en tu ejemplo valen null o no aparecen siempre. Si no lo fueran, la decodificación fallaría en la app.

    ¿Se envía mi JSON a algún servidor?

    No. El código se ejecuta en tu navegador.

    Herramientas y artículos relacionados