Pega Swift a la izquierda y haz clic en "Convertir" — lo convertimos a JSONPega código Swift

Qué hace esta herramienta

Si alguna vez definiste un struct de Swift, lo hiciste Codable y te diste cuenta de que solo necesitabas el JSON sin montar un playground ni un simulador — esta herramienta hace justo eso. Pega el Swift aquí y obtén JSON válido sin tocar JSONEncoder, Xcode ni Swift Package Manager. Maneja una sola instancia de struct, un archivo entero con varios tipos, o algo con arrays anidados y opcionales — mismo resultado: un documento JSON limpio con todas las propiedades preservadas.

El conversor sigue cómo los valores de Swift se serializan realmente a través de JSONEncoder. String, Int, Double, Bool se mapean a sus equivalentes JSON evidentes. Los arrays [Item] se convierten en arrays JSON; los diccionarios [String: V] se convierten en objetos JSON. Optional<T> con nil se vuelve null en JSON (o se omite, según la estrategia del encoder). UUID sale como cadena hexadecimal estándar, Date como string ISO-8601, y URL como string. Los enums con raw value emiten ese valor — el mismo comportamiento que obtienes con Foundation.JSONEncoder.

Se respetan los CodingKeys personalizados — si renombras una propiedad para JSON (case shippingAddress = "shipping_address"), la salida usa la clave renombrada. Los tipos Codable anidados se expanden inline. Pega varios structs de golpe y cada uno se convierte en una entrada de nivel superior en la salida. Si quieres entender mejor cómo Swift modela JSON, apple/swift tiene el código fuente, y Hacking with Swift tiene explicaciones claras del protocolo Codable.

Cómo usarlo

Tres pasos. Funciona igual si pegas una instancia de struct o un archivo de modelos entero.

1

Pega tu Swift (o carga el ejemplo)

Mete tu Swift tal cual en el editor de la izquierda. Un struct, una class, un enum con valores asociados, varios tipos o arrays y diccionarios anidados — todo vale. Haz clic en Cargar ejemplo para ver primero un caso realista.

No hace falta quitar import Foundation ni los atributos @available. Deja la sintaxis de Swift intacta — el parser se encarga.

2

Dale a Convertir

Haz clic en el botón verde Convertir. La herramienta lee el Swift, preserva cada propiedad y tipo anidado, y emite el JSON en una sola pasada. Un breve indicador de carga aparece mientras trabaja.

3

Copia el JSON

El panel derecho se llena de JSON indentado. Cópialo a tu test de URLSession, a un fixture de MockURLProtocol, a tus ejemplos de OpenAPI o a un cliente REST. Ese es todo el ciclo.

Cuándo te saca de verdad de un apuro

Fixtures de APIs en iOS

Tienes un struct de request para una llamada <code>URLSession</code> y necesitas un payload JSON para Postman o un test. Pega el struct, coge el JSON, sigue adelante.

Respuestas de mock server

Convierte tus tipos <code>Codable</code> de respuesta en JSON que puedes meter en un mock server, en <code>MockURLProtocol</code> o en un archivo de respuesta grabada — sin una sola llamada a <code>JSONEncoder</code>.

Tests de backend Vapor / SwiftNIO

Un servicio Vapor con 20 tipos <code>Content</code>. Genera archivos JSON de seed para tests de integración sin escribir una sola llamada de encode.

Docs y ejemplos de OpenAPI

Genera ejemplos JSON para tu spec de OpenAPI o tu referencia de API directamente desde tus modelos reales, para que la documentación siga al día.

Preguntas frecuentes

¿El tipo tiene que conformar a Codable?

El tipo no necesita conformar realmente en tu código para que la herramienta funcione — el conversor lee la forma y produce el JSON directamente. En tu propia app, Codable (o al menos Encodable) es como consigues el mismo resultado en runtime a través de JSONEncoder.

¿Respeta los CodingKeys personalizados?

Sí. Si tu tipo define enum CodingKeys: String, CodingKey con raw values personalizados (case shippingAddress = "shipping_address"), la salida usa esas claves renombradas.

¿Cómo se manejan Optionals, Dates y UUIDs?

Optional<T> con nil sale como null en JSON. Date sale como string ISO-8601 por defecto (igual que JSONEncoder.DateEncodingStrategy.iso8601). UUID sale como cadena hexadecimal estándar. URL sale como string.

¿Y los enums con valores asociados?

Los enums con raw value emiten ese valor directamente. Los enums con valores asociados salen como un objeto etiquetado — la misma forma que Swift produce cuando codificas un caso con valores asociados.

¿Se guarda mi código?

Tu código se envía al backend para la conversión y no se persiste — no logueamos el payload. Revisa el código sensible antes de pegarlo.

¿Funciona con modelos de SwiftUI y property wrappers?

Sí — los property wrappers como @Published se desempaquetan a su valor interno. Las clases ObservableObject con propiedades @Published se serializan sin problema. Los tipos de vista específicos de SwiftUI no son datos serializables, pero cualquier modelo que esté detrás de tus vistas entra en juego.

Otras herramientas que te pueden venir bien

Swift a JSON es solo una pieza del puzzle. Estas combinan bien con ella: