Convertitore Ruby to JSON
Incolla classi, hash od oggetti Ruby. Ti torna JSON pulito.
Cosa fa questo strumento
Se hai una classe Ruby con un sacco di attributi e ti serve un payload JSON per un test, una chiamata API o una fixture, costruire l'hash a mano è una rottura. Incolla il Ruby qui e ti torna JSON valido con ogni campo conservato. Che sia una singola classe Order, un Customer annidato con indirizzi, o un intero file di definizioni di modelli da Rails, l'output combacia con quello che ti darebbe to_json a runtime.
Il convertitore capisce come Ruby serializza davvero. La stdlib json trasforma le chiavi :symbol in stringhe (perché JSON ha solo chiavi stringa), nil diventa null, e Time / Date escono come stringhe ISO-8601. Hash con chiavi simbolo e chiavi stringa vengono normalizzati entrambi, e array di tipi misti restano intatti. Le istanze annidate — un Address dentro un Order — vengono espanse in oggetti JSON annidati, non stringificate. I dettagli sono su ruby-doc.org.
Incolla un file intero da una gem o dalla tua app Rails e ogni classe top-level esce come sua propria entry JSON, con le variabili di istanza settate da initialize riportate nell'output. attr_accessor, attr_reader e gli @ivars nudi vengono tutti presi. Se il parser vede uno Struct o un OpenStruct, tratta i membri allo stesso modo. I metodi vengono saltati — solo i dati finiscono nel JSON.
Come usarlo
Tre passi. Funziona uguale sia che incolli due righe o un'intera cartella models/.
Incolla il tuo Ruby (o prova l'esempio)
Butta il tuo Ruby nell'editor di sinistra così com'è. Una definizione di classe, un hash literal, più classi o un'istanza .new — va tutto bene. Clicca Carica esempio se vuoi prima vedere un caso realistico.
Non c'è bisogno di potare il codice — lascia la sintassi Ruby, le righe require e i commenti così come sono. Il parser ignora quello che non è dato. Per i casi limite, la doc della stdlib JSON vale la lettura.
Premi Converti
Clicca il bottone verde Converti. Lo strumento legge il Ruby, conserva ogni classe e attributo, e produce il JSON in una passata. Vedrai un breve indicatore di caricamento mentre gira.
Copia il JSON
Il pannello di destra si riempie di JSON indentato e conforme alla spec. Copialo in una richiesta Postman, una fixture di test, un file seeds di Rails o nella doc della tua API.
Quando serve davvero
Fixture di test per RSpec
Hai un modello Order con 20 attributi e ti serve JSON per stubbare un servizio esterno. Incolli la classe, tiri fuori il payload, lo metti nello spec.
Seeding di un'app Rails
Trasforma un mucchio di righe <code>Product.new(...)</code> in un file JSON di seed per db/seeds o un loader di dati di staging — senza scrivere a mano.
Doc che combaciano con i tuoi modelli
Genera esempi JSON per un README o un riferimento API direttamente dalle tue classi Ruby, così la doc non si scollega mai dal codice.
Debug di problemi di serializzazione
Quando <code>to_json</code> fa cose strane, incolla qui il Ruby per vedere la forma JSON attesa e confrontarla con quello che la tua app sta davvero mandando.
Domande frequenti
Posso incollare più classi in una volta sola?
Sì. Incolla un file intero. Ogni classe top-level esce come sua propria entry JSON, con le classi annidate espanse in oggetti annidati. I metodi vengono ignorati — solo le variabili di istanza e i loro valori finiscono nell'output.
Come vengono gestiti simboli e chiavi stringa?
JSON ha solo chiavi stringa, quindi :name diventa "name" — stesso comportamento della stdlib json. Se hai un hash che mescola chiavi simbolo e chiavi stringa, entrambe vengono normalizzate a stringa nell'output.
E Time, Date e BigDecimal?
Time e DateTime escono come stringhe ISO-8601. Date è una stringa data ISO. BigDecimal diventa un numero JSON. nil è null. Range e regex vengono stringificate — il resto dei tipi standard viene mappato come fa il to_json di default di Ruby.
Gestisce Struct e OpenStruct?
Sì. Uno Struct con membri :name, :price viene serializzato come oggetto JSON con quelle chiavi. Stessa cosa per OpenStruct — gli attributi dinamici vengono presi ed emessi.
Il mio codice viene memorizzato?
Il tuo Ruby viene mandato al backend per la conversione e non viene persistito — non logghiamo il payload. Come sempre con gli strumenti online, se il codice è davvero sensibile, prima dagli un'occhiata.
E se il codice ha metodi o block?
Metodi e block vengono saltati — non sono dati. Nel JSON finiscono solo il nome della classe, le variabili di istanza dall'initialize e i valori letterali, così il resto del tuo modello passa pulito lo stesso.
Altri strumenti che ti potrebbero servire
Ruby to JSON è un pezzo. Questi ci stanno bene insieme: