Ruby-zu-JSON-Konverter
Ruby-Klassen, Hashes oder Objekte reinpacken. Sauberes JSON raus.
Was dieses Tool macht
Wenn du eine Ruby-Klasse mit einem Haufen Attributen hast und ein JSON-Payload für einen Test, einen API-Call oder eine Fixture brauchst, ist das Hash per Hand zusammenzuschrauben einfach nervig. Ruby hier reinpacken und du bekommst valides JSON mit jedem Feld sauber drin. Egal ob es eine einzelne Order-Klasse ist, ein verschachteltes Customer mit Addresses, oder eine ganze Datei mit Model-Definitionen aus Rails — die Ausgabe passt zu dem, was to_json zur Laufzeit liefert.
Der Konverter versteht, wie Ruby tatsächlich serialisiert. Die json-stdlib macht aus :symbol-Keys Strings (weil JSON nur String-Keys kennt), nil wird zu null, und Time / Date kommen als ISO-8601-Strings raus. Hashes mit Symbol-Keys und String-Keys werden beide normalisiert, und Arrays mit gemischten Typen bleiben heil. Verschachtelte Instanzen — ein Address innerhalb einer Order — werden zu verschachtelten JSON-Objekten expandiert, nicht stringifiziert. Die Details kannst du auf ruby-doc.org nachlesen.
Pack eine ganze Datei aus einer Gem oder deiner Rails-App rein und jede Top-Level-Klasse kommt als eigener JSON-Eintrag raus, mit den im initialize gesetzten Instance-Variables in der Ausgabe. attr_accessor, attr_reader und reine @ivars werden alle erkannt. Wenn der Parser einen Struct oder OpenStruct sieht, behandelt er die Members genauso. Methoden werden übersprungen — nur Daten landen im JSON.
So nutzt du es
Drei Schritte. Funktioniert gleich, ob du ein paar Zeilen oder einen ganzen models/-Ordner reinpackst.
Ruby reinpacken (oder das Beispiel probieren)
Schmeiß dein Ruby so wie es ist in den linken Editor. Eine Klassendefinition, ein Hash-Literal, mehrere Klassen oder eine .new-Instanz — alles okay. Klick auf Beispiel laden, wenn du erst ein realistisches Beispiel sehen willst.
Du musst den Code nicht trimmen — lass die Ruby-Syntax, require-Zeilen und Kommentare so wie sie sind. Der Parser ignoriert alles, was keine Daten sind. Für Edge Cases sind die JSON-stdlib-Docs eine gute Lektüre.
Konvertieren drücken
Klick auf den grünen Konvertieren-Button. Das Tool liest das Ruby, behält jede Klasse und jedes Attribut und produziert das JSON in einem Rutsch. Während es läuft, siehst du kurz einen Ladeindikator.
JSON kopieren
Das rechte Panel füllt sich mit eingerücktem, spec-konformem JSON. Kopier es in einen Postman-Request, eine Test-Fixture, eine Rails-seeds-Datei oder deine API-Doku.
Wann das wirklich was bringt
Test-Fixtures für RSpec
Du hast ein Order-Model mit 20 Attributen und brauchst JSON, um einen externen Service zu stubben. Klasse rein, Payload raus, ab ins Spec.
Rails-App seeden
Mach aus einem Haufen <code>Product.new(...)</code>-Zeilen eine JSON-Seed-Datei für db/seeds oder einen Staging-Data-Loader — ohne alles von Hand zu tippen.
Docs, die zu deinen Models passen
Generiere JSON-Beispiele für ein README oder eine API-Referenz direkt aus deinen Ruby-Klassen, damit die Docs nie vom Code abdriften.
Serialisierungs-Probleme debuggen
Wenn <code>to_json</code> sich komisch benimmt, Ruby hier reinpacken, um die erwartete JSON-Form zu sehen und mit dem zu vergleichen, was deine App tatsächlich rausschickt.
Häufige Fragen
Kann ich mehrere Klassen auf einmal reinpacken?
Ja. Pack eine ganze Datei rein. Jede Top-Level-Klasse kommt als eigener JSON-Eintrag raus, mit verschachtelten Klassen expandiert in verschachtelte Objekte. Methoden werden ignoriert — nur Instance-Variables und ihre Werte landen in der Ausgabe.
Wie werden Symbols und String-Keys behandelt?
JSON kennt nur String-Keys, also wird :name zu "name" — selbes Verhalten wie die json-stdlib. Wenn du ein Hash hast, das Symbol- und String-Keys mischt, werden beide in der Ausgabe zu Strings normalisiert.
Was ist mit Time, Date und BigDecimal?
Time und DateTime kommen als ISO-8601-Strings raus. Date ist ein ISO-Datums-String. BigDecimal wird zu einer JSON-Zahl. nil ist null. Ranges und Regexes werden stringifiziert — der Rest der Standard-Typen wird so gemappt, wie Rubys Default-to_json das macht.
Kommt es mit Struct und OpenStruct klar?
Ja. Ein Struct mit Members :name, :price wird als JSON-Objekt mit diesen Keys serialisiert. Genauso für OpenStruct — die dynamischen Attribute werden erkannt und ausgegeben.
Wird mein Code gespeichert?
Dein Ruby wird zum Konvertieren ans Backend geschickt und nicht persistiert — wir loggen das Payload nicht. Wie immer bei Online-Tools gilt: wenn der Code wirklich sensitiv ist, schau ihn dir vorher selbst an.
Was, wenn der Code Methoden oder Blocks enthält?
Methoden und Blocks werden übersprungen — das sind keine Daten. Nur der Klassenname, Instance-Variables aus dem initialize und Literal-Werte landen im JSON, damit der Rest deines Models trotzdem sauber durchkommt.
Andere Tools, die du brauchen könntest
Ruby zu JSON ist ein Baustein. Diese passen gut dazu: