Ruby-naar-JSON converter
Plak Ruby classes, hashes of objects. Krijg schone JSON terug.
Wat deze tool doet
Als je een Ruby-class hebt met een hoop attributen en je hebt een JSON-payload nodig voor een test, een API-call of een fixture, dan is die hash met de hand in elkaar zetten gewoon een klus. Plak de Ruby hier en je krijgt valide JSON terug met elk veld intact. Of het nu één Order-class is, een geneste Customer met addresses, of een heel bestand met model definitions uit Rails — de output komt overeen met wat je van to_json zou krijgen op runtime.
De converter snapt hoe Ruby echt serializeert. De json stdlib maakt van :symbol-keys strings (want JSON heeft alleen string keys), nil wordt null, en Time / Date komen eruit als ISO-8601 strings. Hashes met symbol keys en string keys worden allebei genormaliseerd, en arrays met mixed types blijven heel. Geneste instances — een Address binnen een Order — worden uitgeklapt naar geneste JSON-objects, niet gestringified. Details staan op ruby-doc.org.
Plak een heel bestand uit een gem of uit je Rails-app en elke top-level class komt eruit als eigen JSON-entry, met de instance variables die initialize zet in de output. attr_accessor, attr_reader en kale @ivars worden allemaal opgepikt. Als de parser een Struct of OpenStruct ziet, behandelt hij de members op dezelfde manier. Methods worden overgeslagen — alleen data komt in de JSON terecht.
Hoe je het gebruikt
Drie stappen. Werkt hetzelfde of je nou een paar regels plakt of een hele models/-folder.
Plak je Ruby (of probeer het voorbeeld)
Gooi je Ruby in de linker editor zoals het is. Een class definition, een hash literal, meerdere classes of een .new instance — allemaal prima. Klik op Voorbeeld laden als je eerst een realistisch voorbeeld wilt zien.
Je hoeft de code niet bij te snijden — laat de Ruby-syntax, require-regels en comments staan zoals ze zijn. De parser negeert wat geen data is. Voor edge cases is de JSON stdlib docs een goede read.
Druk op Converteren
Klik op de groene Converteren-knop. De tool leest de Ruby, behoudt elke class en elk attribuut, en produceert de JSON in één pass. Je ziet een korte loading indicator terwijl hij draait.
Kopieer de JSON
Het rechterpanel vult zich met ingesprongen, spec-compliant JSON. Kopieer het in een Postman-request, een test fixture, een Rails seeds file of je API-docs.
Wanneer dit echt handig is
Test fixtures voor RSpec
Je hebt een Order-model met 20 attributen en je hebt JSON nodig om een externe service te stubben. Plak de class, krijg de payload, drop 'm in je spec.
Een Rails-app seeden
Zet een stel <code>Product.new(...)</code>-regels om in een JSON seed file voor db/seeds of een staging data loader — zonder te hoeven typen.
Docs die matchen met je models
Genereer JSON-voorbeelden voor een README of API reference rechtstreeks uit je Ruby-classes, zodat de docs nooit uit sync raken met de code.
Serialization issues debuggen
Als <code>to_json</code> zich raar gedraagt, plak de Ruby hier om de verwachte JSON-shape te zien en vergelijk die met wat je app daadwerkelijk verstuurt.
Veelgestelde vragen
Kan ik meerdere classes tegelijk plakken?
Ja. Plak een heel bestand. Elke top-level class komt eruit als eigen JSON-entry, met geneste classes uitgeklapt tot geneste objects. Methods worden genegeerd — alleen instance variables en hun waardes eindigen in de output.
Hoe worden symbols en string keys afgehandeld?
JSON heeft alleen string keys, dus :name wordt "name" — zelfde gedrag als de json stdlib. Als je een hash hebt die symbol en string keys mixt, worden beide genormaliseerd naar strings in de output.
En Time, Date en BigDecimal?
Time en DateTime komen eruit als ISO-8601 strings. Date is een ISO date string. BigDecimal wordt een JSON number. nil is null. Ranges en regexes worden gestringified — de rest van de standaard types mappen zoals Ruby's default to_json dat doet.
Werkt het met Struct en OpenStruct?
Ja. Een Struct met members :name, :price wordt geserialized als een JSON-object met die keys. Zelfde voor OpenStruct — de dynamische attributen worden opgepikt en uitgevoerd.
Wordt mijn code opgeslagen?
Je Ruby wordt naar de backend gestuurd voor conversie en wordt niet persistently opgeslagen — we loggen de payload niet. Zoals altijd bij online tools: als de code echt gevoelig is, check 'm eerst even zelf.
En als de code methods of blocks bevat?
Methods en blocks worden overgeslagen — dat is geen data. Alleen de class name, instance variables uit initialize en literal values komen in de JSON, dus de rest van je model komt gewoon netjes door.
Andere tools die je misschien nodig hebt
Ruby naar JSON is één stukje. Deze combineren er goed mee: