Wklej SQL po lewej i kliknij "Konwertuj" — zamienimy to w JSONWklej instrukcje SQL

Co robi to narzędzie

Jeśli kiedyś wyciągałeś kilka INSERT-ów z migracji albo z outputu pg_dump i potrzebowałeś tego jako JSON do seeda API albo fixture'a, to załatwia sprawę jednym wklejeniem. Nie musisz ładować dumpa do bazy tylko po to, żeby go wyciągnąć przez SELECT ... FOR JSON.

Narzędzie czyta instrukcje INSERT INTO table (col, col, ...) VALUES (...) — w tym multi-row INSERT-y — i wypluwa tablicę JSON, w której każdy wiersz to obiekt JSON z kluczami ustawionymi na nazwy kolumn. Obsługuje standardowy dialekt pokryty przez ISO SQL oraz popularne warianty w PostgreSQL, MySQL, SQLite i SQL Server.

Wartości dostają typy tak, jakbyś się spodziewał: literały integer i decimal zostają liczbami, stringi w cudzysłowach zostają stringami, NULL zamienia się w JSON-owy null, a TRUE/FALSE w booleany. Literały dat i czasu ('2024-01-15', '2024-01-15 10:30:00') wychodzą jako stringi ISO-8601. Jak wkleisz kilka INSERT-ów do różnych tabel, każda tabela dostaje swój klucz w wyjściu, a pod nim wiersze w tablicy JSON.

Jak tego używać

Trzy kroki. Działa tak samo, czy wklejasz trzy wiersze, czy trzy tysiące.

1

Wklej SQL (albo odpal przykład)

Wrzuć swoje INSERT-y do lewego edytora. Pojedynczy INSERT, INSERT multi-row albo kilka INSERT-ów do różnych tabel — każdy wariant jest ok. Kliknij Wczytaj przykład, żeby zobaczyć realistyczny przykład z orders i items.

Zostaw SQL takim, jaki jest — końcowe średniki, komentarze inline (-- albo /* ... */) i prefiksy schematu (public.orders) wszystko się poprawnie sparsuje.

2

Kliknij Konwertuj

Kliknij zielony przycisk Konwertuj. Narzędzie czyta wszystkie INSERT-y, dopasowuje wartości do nazw kolumn i buduje JSON w jednym przebiegu.

3

Skopiuj JSON

Prawy panel pokazuje tablicę JSON (albo obiekt tablic dla multi-tablicowych dumpów). Wrzuć to prosto do seeda API, fixture'a Jest albo statycznego mock serwera.

Kiedy to faktycznie ratuje

Seed z istniejącego dumpa

Masz plik z <code>mysqldump</code> albo <code>pg_dump</code> i chcesz dane seed w JSON dla nowej aplikacji, która nie gada bezpośrednio ze starą bazą. Wklej INSERT-y, zachowaj JSON.

Tworzenie fixtures do testów

Zgarnij kilka wierszy z produkcji jako INSERT-y (bez niczego wrażliwego) i przekonwertuj na JSON-owe fixtures do testów integracyjnych albo mocków w Storybooku.

Pliki seed do API

Nowy mikroserwis spodziewa się seeda w JSON, a dane siedzą jako SQL-owe inserty w monorepo. Jedno wklejenie i masz plik seed.

Przekazywanie danych zespołowi front-endu

Front-end potrzebuje przykładowych danych do nowego ekranu. SQL masz pod ręką. Konwertuj na JSON i wrzuć im do repo jako mock response.

Częste pytania

Jakie dialekty SQL obsługuje?

Wspólny podzbiór: składnia INSERT z PostgreSQL, MySQL/MariaDB, SQLite i SQL Server. Drobiazgi specyficzne dla dialektu, takie jak escape'y E'...' w PostgreSQL czy identyfikatory w backtickach w MySQL, są obsłużone.

Czy obsługuje INSERT-y multi-row?

Tak — INSERT INTO orders (id, total) VALUES (1, 9.99), (2, 15.50), (3, 42.00); wychodzi jako trzyelementowa tablica JSON, jeden obiekt na wiersz.

A co z INSERT-ami do wielu tabel?

Każda tabela ląduje jako osobny klucz w wynikowym JSON, z wierszami jako tablica JSON. Czyli migracja, która inserta do orders i order_items, daje ci {"orders": [...], "order_items": [...]} — bardzo wygodne do seedów, które muszą zachować strukturę relacyjną.

Jak traktowane są NULL, daty i booleany?

NULL zamienia się w JSON-owy null. TRUE/FALSE (albo 0/1, jeśli nie da się wywnioskować schematu) stają się JSON-owymi booleanami albo liczbami. Literały dat wychodzą jako stringi ISO-8601 zgodnie z RFC 3339.

Czy wykonuje SQL?

Nie — nic nie jest wykonywane na żadnej bazie. Narzędzie parsuje składnię INSERT i wypluwa JSON. Twoje dane nie opuszczają request'a konwersji.

A result sety z SELECT-ów?

Wklej sformatowany result set (nagłówki kolumn plus wiersze), a narzędzie postara się zrobić z tego tablicę JSON. Składnia INSERT jest pewniejsza, bo nazwy kolumn są jawne — jeśli się da, lepiej wklejaj INSERT-y.

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

SQL na JSON dobrze gra z resztą skrzynki narzędziowej: