Wklej Ruby po lewej i kliknij "Konwertuj" — zamienimy to na JSONWklej kod Ruby

Co robi to narzędzie

Jeśli masz klasę Ruby z kupą atrybutów i potrzebujesz payloadu JSON do testu, wywołania API albo fixture'a, klepanie hasha z ręki to czysta męka. Wklej tu Ruby i dostaniesz poprawny JSON z każdym polem na miejscu. Czy to pojedyncza klasa Order, zagnieżdżony Customer z adresami, czy cały plik z definicjami modeli z Rails — wynik zgadza się z tym, co dostałbyś z to_json w runtime.

Konwerter rozumie, jak Ruby naprawdę serializuje. Stdlibowa biblioteka json zamienia klucze :symbol w stringi (bo JSON ma tylko klucze stringowe), nil staje się null, a Time / Date wychodzą jako stringi ISO-8601. Hashe z kluczami symbolowymi i stringowymi są normalizowane, a tablice z mieszanymi typami zostają nietknięte. Zagnieżdżone instancje — Address wewnątrz Order — są rozwijane do zagnieżdżonych obiektów JSON, nie stringifikowane. Szczegóły są na ruby-doc.org.

Wklej cały plik z gema albo ze swojej apki Rails i każda klasa najwyższego poziomu wychodzi jako własny wpis JSON, z zmiennymi instancji ustawianymi w initialize wciągniętymi do wyjścia. attr_accessor, attr_reader i gołe @ivars — wszystko jest łapane. Jeśli parser widzi Struct albo OpenStruct, traktuje członków tak samo. Metody są pomijane — do JSON-a trafiają tylko dane.

Jak tego użyć

Trzy kroki. Działa tak samo, czy wkleisz kilka linijek, czy cały folder models/.

1

Wklej swój Ruby (albo spróbuj przykład)

Rzuć swojego Ruby do lewego edytora tak, jak jest. Definicja klasy, literał hasha, kilka klas albo instancja .new — wszystko gra. Kliknij Wczytaj przykład, jeśli chcesz najpierw zobaczyć realistyczny case.

Nie musisz ciąć kodu — zostaw składnię Ruby, linie require i komentarze jak są. Parser ignoruje to, co nie jest danymi. Do edge case'ów doki JSON stdlib to dobra lektura.

2

Kliknij Konwertuj

Kliknij zielony przycisk Konwertuj. Narzędzie czyta Ruby, zachowuje każdą klasę i atrybut, i produkuje JSON w jednym przebiegu. Podczas działania zobaczysz krótki wskaźnik ładowania.

3

Skopiuj JSON

Prawy panel wypełnia się wciętym, zgodnym ze specyfikacją JSON-em. Skopiuj go do requestu Postmana, fixture'a testowego, pliku seeds w Rails albo do doków swojego API.

Kiedy to się naprawdę przydaje

Fixture'y testowe dla RSpec

Masz model Order z 20 atrybutami i potrzebujesz JSON-a, żeby stubnąć zewnętrzny serwis. Wklej klasę, weź payload, wrzuć do speca.

Seedowanie apki Rails

Zamień kupę linijek <code>Product.new(...)</code> w plik JSON seed dla db/seeds albo loadera danych stage — bez klepania z ręki.

Dokumentacja pasująca do Twoich modeli

Generuj przykłady JSON do README albo referencji API prosto ze swoich klas Ruby, żeby dokumentacja nigdy nie odbiegała od kodu.

Debugowanie problemów z serializacją

Kiedy <code>to_json</code> odbija, wklej Ruby tutaj, żeby zobaczyć oczekiwany kształt JSON i porównać go z tym, co Twoja apka faktycznie wysyła.

Częste pytania

Mogę wkleić kilka klas naraz?

Tak. Wklej cały plik. Każda klasa najwyższego poziomu wychodzi jako własny wpis JSON, z zagnieżdżonymi klasami rozwiniętymi do zagnieżdżonych obiektów. Metody są ignorowane — do wyjścia trafiają tylko zmienne instancji i ich wartości.

Jak obsługiwane są symbole i klucze stringowe?

JSON ma tylko klucze stringowe, więc :name staje się "name" — to samo zachowanie co stdlibowa biblioteka json. Jeśli masz hash mieszający klucze symbolowe i stringowe, oba są normalizowane do stringów w wyjściu.

A Time, Date i BigDecimal?

Time i DateTime wychodzą jako stringi ISO-8601. Date to string daty ISO. BigDecimal staje się liczbą JSON. nil to null. Range'e i regexy są stringifikowane — reszta standardowych typów mapuje się tak, jak robi to domyślny to_json Ruby'ego.

Ogarnia Struct i OpenStruct?

Tak. Struct z członkami :name, :price jest serializowany jako obiekt JSON z tymi kluczami. Tak samo dla OpenStruct — dynamiczne atrybuty są łapane i wypisywane.

Czy mój kod jest zapisywany?

Twój Ruby idzie do backendu do konwersji i nie jest trzymany — nie logujemy payloadu. Jak zawsze z narzędziami online: jeśli kod jest naprawdę wrażliwy, najpierw rzuć na niego okiem.

A co jeśli kod ma metody albo bloki?

Metody i bloki są pomijane — to nie są dane. Do JSON-a trafia tylko nazwa klasy, zmienne instancji z initialize i wartości literalne, więc reszta modelu i tak przechodzi bez problemu.

Inne narzędzia, które mogą się przydać

Ruby na JSON to jeden kawałek. Te dobrze z nim działają: