Incolla il Ruby a sinistra e clicca "Converti" — lo trasformiamo in JSONIncolla codice Ruby

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/.

1

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.

2

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.

3

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: