Hoppa till innehåll
100% lokalt

JSON till SQL CREATE TABLE

Konvertera ett JSON-objekt eller en array av objekt till en SQL CREATE TABLE-sats.

Inmatning
Utmatning

JSON till SQL CREATE TABLE

Klistra in ett JSON-objekt eller en array av JSON-objekt, och det här verktyget skapar en färdig SQL CREATE TABLE-sats från det — peka det mot en exempel-API-respons eller en exporterad post och få ett startschema i stället för att skriva varje kolumn för hand.

Kolumntyper härledas från de faktiska värdena: heltal blir INTEGER, tal med decimaldel blir DECIMAL, true/false blir BOOLEAN, strängar formade som 2024-01-15 eller 2024-01-15T10:30:00Z blir DATE eller TIMESTAMP, och allt annat blir VARCHAR med uppskattad längd, eller TEXT över 255 tecken. Ett fält markerat NOT NULL är närvarande, och aldrig null, i varje post du klistrat in; ett fält named id blir PRIMARY KEY. Välj en dialekt — ANSI SQL, MySQL, PostgreSQL, SQLite eller SQL Server — för att matcha de små skillnaderna i typnamn. Kapslade objekt kan plattas ut i prefixerade kolumner (address.city blir address_city) eller hållas som en enda JSON-kolumn, och "Konvertera namn till snake_case" förvandlar camelCase JSON-nycklar till konventionella SQL-kolumnnamn.

Med mer än en post, genom att slå på "Lägg till INSERT-satser", läggs en INSERT per post under CREATE TABLE, med samma härledda kolumner — praktiskt för att seeda en testdatabas från en JSON-fixture. Inferens tittar alltid på alla poster du klistrade in, inte bara den första, så ett fält som bara ibland finns är korrekt lämnat nullable snarare än felaktigt gissat.

Allt körs i din webbläsare. Den JSON du klistrar in, och schemat som genereras från det, överförs aldrig någonstans — det spelar roll när exempeldata kommer från en produktionsexport. Kopiera resultatet, ladda ned det som en .txt-fil, eller skicka utdata tillbaka till inmatningen för att fortsätta förfina schemat.

FAQ

Hur bestäms kolumntyper?
Varje kolumn härledas från alla värden som setts för det fältet över alla poster du klistrat in — inte bara den första. Ett fält med blandade typer (ett tal i en post, en sträng i en annan) faller tillbaka till en textkolumn, eftersom det är den enda typ som säkert kan hålla båda.
Vad händer med ett fält med namnet "id"?
En kolumn med namnet id (efter snake_case-konvertering, om aktiverad) blir PRIMARY KEY. Auto-increment- eller identity-syntax skiljer sig tillräckligt mellan dialekter för att den utelämnas — lägg till själv när du har valt en strategi.
Vad är skillnaden mellan de två alternativen för kapslade objekt?
"Platta med understrykning" förvandlar ett kapslat objekt som address: { city } till en separat kolumn address_city. "Behåll som JSON-kolumn" lagrar istället hela det kapslade objektet som en enda JSON- (eller text)kolumn. Arrays lagras alltid som en enda JSON/text-kolumn, eftersom en enskild rad inte kan innehålla en variabel längd lista.
Kan det generera data att infoga samt tabellen?
Ja. Slå på "Lägg till INSERT-satser" och, om du har klistrat in en array av objekt, läggs en INSERT-sats per post under CREATE TABLE, med samma härledda kolumner.
Överförs min JSON någonstans?
Nej. Parsning, typinferens och SQL-generering körs allt lokalt i din webbläsare — din JSON och schemat som härletts från det lämnar aldrig din enhet.