Ruby till JSON-konverterare
Klistra in Ruby-klasser, hashar eller objekt. Få ren JSON tillbaka.
Vad verktyget gör
Om du har en Ruby-klass med en hög attribut och behöver en JSON-payload till ett test, ett API-anrop eller en fixture, så är det rent tråkjobb att handknåda hashen. Klistra in Ruby här så får du tillbaka giltig JSON med varje fält bevarat. Oavsett om det är en enda Order-klass, en nästlad Customer med addresses, eller en hel fil med model definitions från Rails — output matchar det du skulle fått av to_json i runtime.
Konverteraren fattar hur Ruby faktiskt serialiserar. json stdlib gör om :symbol-nycklar till strängar (eftersom JSON bara har strängnycklar), nil blir null, och Time / Date kommer ut som ISO-8601-strängar. Hashar med symbolnycklar och strängnycklar normaliseras båda, och arrays med blandade typer lämnas intakta. Nästlade instanser — en Address inuti en Order — expanderas till nästlade JSON-objekt, inte stringifieras. Detaljerna finns på ruby-doc.org.
Klistra in en hel fil från en gem eller din Rails-app och varje top-level-klass kommer ut som sin egen JSON-post, med instance variables från initialize med i outputen. attr_accessor, attr_reader och rena @ivars — allt plockas upp. Om parsern ser en Struct eller en OpenStruct behandlas medlemmarna på samma sätt. Metoder hoppas över — bara data hamnar i JSON:en.
Så använder du det
Tre steg. Fungerar likadant oavsett om du klistrar in några rader eller en hel models/-mapp.
Klistra in din Ruby (eller testa exemplet)
Släng in din Ruby i vänstra editorn som den är. En class definition, en hash literal, flera klasser eller en .new-instans — allt funkar. Klicka på Ladda exempel om du vill se ett realistiskt fall först.
Du behöver inte trimma koden — låt Ruby-syntaxen, require-raderna och kommentarerna stå som de är. Parsern ignorerar det som inte är data. För edge cases är JSON stdlib-docsen värda att läsa.
Tryck på Konvertera
Klicka på den gröna Konvertera-knappen. Verktyget läser Ruby, bevarar varje klass och attribut, och producerar JSON:en i ett svep. Du ser en kort laddningsindikator medan det rullar.
Kopiera JSON:en
Högra panelen fylls med indenterad, spec-följsam JSON. Kopiera in den i en Postman-request, en test fixture, en Rails seeds-fil eller dina API-docs.
När det faktiskt kommer till nytta
Test fixtures för RSpec
Du har en Order-model med 20 attribut och behöver JSON för att stubba en extern tjänst. Klistra in klassen, få payloaden, släng den i din spec.
Seed:a en Rails-app
Gör om en bunt <code>Product.new(...)</code>-rader till en JSON-seed-fil för db/seeds eller en staging-data-loader — utan att knappa in för hand.
Docs som matchar dina models
Generera JSON-exempel till en README eller API-referens direkt från dina Ruby-klasser så att docsen aldrig driver ifrån koden.
Debugga serialiseringsproblem
När <code>to_json</code> beter sig knasigt — klistra in Ruby här för att se den förväntade JSON-formen och jämföra med det din app faktiskt skickar.
Vanliga frågor
Kan jag klistra in flera klasser samtidigt?
Ja. Klistra in en hel fil. Varje top-level-klass kommer ut som sin egen JSON-post, med nästlade klasser expanderade till nästlade objekt. Metoder ignoreras — bara instance variables och deras värden hamnar i outputen.
Hur hanteras symbols och string-nycklar?
JSON har bara strängnycklar, så :name blir "name" — samma beteende som json stdlib. Om du har en hash som blandar symbol- och string-nycklar normaliseras båda till strängar i outputen.
Och Time, Date och BigDecimal?
Time och DateTime kommer ut som ISO-8601-strängar. Date är en ISO-datumsträng. BigDecimal blir ett JSON-tal. nil är null. Ranges och regexar stringifieras — resten av standardtyperna mappar som Rubys default-to_json gör.
Hanterar den Struct och OpenStruct?
Ja. En Struct med medlemmarna :name, :price serialiseras som ett JSON-objekt med de nycklarna. Detsamma för OpenStruct — de dynamiska attributen plockas upp och skickas ut.
Sparas min kod?
Din Ruby skickas till backend för konvertering och lagras inte — vi loggar inte payloaden. Som alltid med onlineverktyg: om koden är riktigt känslig, kolla igenom den själv först.
Vad händer om koden har metoder eller block?
Metoder och block hoppas över — det är inte data. Bara klassnamnet, instance variables från initialize och literala värden hamnar i JSON:en, så resten av din model kommer ändå igenom rent.
Andra verktyg du kan behöva
Ruby till JSON är en pusselbit. De här matchar bra ihop med det: