JSON naar MySQL Schematransformatie — Numio
Genereert MySQL CREATE TABLE-instructies uit voorbeeld JSON. De root wordt een tabel met de naam generiek; elk genest object of elke array wordt een onderliggende tabel met een externe sleutel voor de primaire sleutel van de ouder.
Een genormaliseerde tabelindeling schetsen voor een API-payload voordat een echte migratie wordt geschreven.
JSON
MySQL Schema
Wanneer gebruik je dit?
- Een genormaliseerde tabelindeling schetsen voor een API-payload voordat een echte migratie wordt geschreven.
- Zien welke geneste objecten en arrays in een document hun eigen tabellen nodig hebben bij het verplaatsen van gegevens van een documentarchief naar MySQL.
Hoe werkt het
- Plak een JSON-object, of een reeks voorbeeldrecords die in één tabel zijn samengevoegd, in de linkereditor, of gebruik de knop Bestand laden om een UTF-8-bestand te openen.
- Lees de gegenereerde tabellen: de root is generiek, kinderen zijn generiek_<key>, gekoppeld door externe sleutels generic_id.
- Kopieer de SQL, hernoem de tabellen en pas de kolomtypen aan (bijvoorbeeld DECIMAL voor prijzen of VARCHAR-lengtes) voordat u deze uitvoert.
JSON voorbeeldobject
{
"id": 1024,
"total": 19.5,
"coupon": null,
"created_at": "2026-01-05T10:00:00Z",
"scores": [4, 4.5],
"items": [{ "sku": "A1", "qty": 2 }]
}MySQL CREATE TABLE-instructies
CREATE TABLE generic ( id INT, total DOUBLE, coupon TEXT, created_at TIMESTAMP, PRIMARY KEY (id) ); CREATE TABLE generic_scores ( generic_id INT, id INT, value DOUBLE, PRIMARY KEY (id), FOREIGN KEY (generic_id) REFERENCES generic(id) ); CREATE TABLE generic_items ( generic_id INT, id INT, sku TEXT, qty INT, PRIMARY KEY (id), FOREIGN KEY (generic_id) REFERENCES generic(id) );
Details en beperkingen
Gehele getallen worden INT (BIGINT buiten het 32-bits bereik), andere getallen DOUBLE, tekenreeksen TEXT en booleans BOOLEAN. Er worden geen VARCHAR-lengtes, NOT NULL, AUTO_INCREMENT of indexen gegenereerd.
De primaire sleutel is een sleutel met de naam id of die _id bevat; als er geen bestaat, wordt er een id-kolom toegevoegd. Tekenreeksen die langer zijn dan 18 tekens en die als datums worden geparseerd, worden TIMESTAMP.
null-waarden worden TEXT-kolommen. Arrays van scalairen krijgen een onderliggende tabel met een waardekolom die uit alle elementen is getypt (de bovenstaande scores zijn DOUBLE).
Draait in uw browser; de uitvoer wordt niet gevalideerd tegen een MySQL-server.
FAQ
Waarom wordt een decimale waarde als DOUBLE getypt en niet als DECIMAL?
Het voorbeeld kan niet de nauwkeurigheid weergeven die u nodig hebt, dus niet-gehele getallen worden DOUBLE. Wijzig de geldkolommen handmatig in DECIMAL(p,s).
Kan ik de tabelnaam kiezen?
Nee. De hoofdtabel is altijd generiek en onderliggende tabellen zijn generiek_<key>. Hernoem ze in de gekopieerde SQL.
Genereert het INSERT-instructies?
Nee, alleen CREATE TABLE. Als u JSON-rijen wilt omzetten in INSERT-instructies, gebruikt u de tool JSON to SQL.