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

Qué hace esta herramienta

Si tienes una clase de Ruby con un montón de atributos y necesitas un payload JSON para un test, una llamada a una API o un fixture, montar el hash a mano es un rollo. Pega el Ruby aquí y te devolvemos JSON válido con todos los campos intactos. Ya sea una sola clase Order, un Customer anidado con direcciones, o un archivo entero de modelos de Rails, la salida coincide con lo que te daría to_json en tiempo de ejecución.

El conversor entiende cómo serializa Ruby de verdad. La librería estándar json convierte claves :symbol en strings (porque JSON solo tiene claves string), nil pasa a null, y Time / Date salen como strings ISO-8601. Los hashes con claves símbolo y claves string se normalizan, y los arrays de tipos mixtos quedan intactos. Las instancias anidadas — una Address dentro de un Order — se expanden en objetos JSON anidados, no se convierten en string. Puedes leer los detalles en ruby-doc.org.

Pega un archivo completo de una gem o de tu app en Rails y cada clase de nivel superior sale como su propia entrada JSON, con las variables de instancia que setea initialize incluidas en la salida. attr_accessor, attr_reader y los @ivars sueltos se detectan todos. Si el parser ve un Struct o un OpenStruct, trata a los miembros igual. Los métodos se ignoran — en el JSON solo acaban los datos.

Cómo usarla

Tres pasos. Funciona igual si pegas unas líneas o una carpeta models/ entera.

1

Pega tu Ruby (o prueba el ejemplo)

Suelta tu Ruby en el editor izquierdo tal cual. Una definición de clase, un literal hash, varias clases o una instancia .new — todo vale. Haz clic en Cargar ejemplo si quieres ver un caso realista primero.

No hace falta que recortes el código — deja la sintaxis Ruby, los require y los comentarios como están. El parser ignora lo que no es dato. Para casos raros, los docs de la librería estándar JSON se leen bien.

2

Pulsa Convertir

Haz clic en el botón verde Convertir. La herramienta lee el Ruby, conserva cada clase y atributo, y genera el JSON en una pasada. Verás un indicador de carga corto mientras corre.

3

Copia el JSON

El panel derecho se llena con JSON indentado y conforme a la spec. Cópialo a una petición de Postman, a un fixture de test, a un archivo de seeds de Rails o a los docs de tu API.

Cuándo viene bien de verdad

Fixtures de test para RSpec

Tienes un modelo Order con 20 atributos y necesitas JSON para mockear un servicio externo. Pega la clase, pilla el payload, mételo en tu spec.

Seeding de una app Rails

Convierte un puñado de líneas <code>Product.new(...)</code> en un archivo JSON de seeds para db/seeds o un loader de datos de staging — sin escribir a mano.

Docs que encajan con tus modelos

Genera ejemplos JSON para un README o una referencia de API directamente desde tus clases Ruby, así los docs nunca se desincronizan del código.

Depurar problemas de serialización

Cuando <code>to_json</code> se pone raro, pega el Ruby aquí para ver la forma JSON esperada y compararla con lo que tu app está mandando en realidad.

Preguntas frecuentes

¿Puedo pegar varias clases a la vez?

Sí. Pega un archivo entero. Cada clase de nivel superior sale como su propia entrada JSON, con las clases anidadas expandidas en objetos anidados. Los métodos se ignoran — en la salida solo acaban las variables de instancia y sus valores.

¿Cómo se tratan los símbolos y las claves string?

JSON solo tiene claves string, así que :name pasa a "name" — mismo comportamiento que la librería estándar json. Si tienes un hash que mezcla claves símbolo y claves string, ambas se normalizan a string en la salida.

¿Qué pasa con Time, Date y BigDecimal?

Time y DateTime salen como strings ISO-8601. Date es una string de fecha ISO. BigDecimal pasa a número JSON. nil es null. Los ranges y las regex se convierten en string — el resto de tipos estándar se mapean igual que lo hace el to_json por defecto de Ruby.

¿Maneja Struct y OpenStruct?

Sí. Un Struct con miembros :name, :price se serializa como un objeto JSON con esas claves. Igual para OpenStruct — los atributos dinámicos se detectan y se emiten.

¿Se guarda mi código?

Tu Ruby se manda al backend para convertirlo y no se persiste — no logueamos el payload. Como siempre con herramientas online, si el código es realmente sensible, revísalo con ojo primero.

¿Y si el código tiene métodos o bloques?

Los métodos y los bloques se saltan — no son datos. En el JSON solo acaban el nombre de la clase, las variables de instancia del initialize y los valores literales, así que el resto de tu modelo sigue saliendo limpio.

Otras herramientas que te pueden servir

Ruby a JSON es una pieza. Estas combinan bien con ella: