Schemainferensverktyg
Varje ny integration börjar likadant: ett API returnerar en JSON-klump och du behöver en modell att lagra den i. Att skriva 20 fält för hand är tråkigt och felbenäget. Det här verktyget tolkar ett JSON-exempelobjekt, väljer en kolumntyp för varje nyckel och skapar ett klart-att-klistra-in schema i det format du vill ha: SQL CREATE TABLE, Mongoose-schema eller Sequelize-modelldefinition.
Så här härleder du ett schema från JSON
-
1
Klistra in ett exempelobjekt
Ange ett JSON-objekt, eller en array av objekt (det första objektet i arrayen läses). Använd en komplett post med alla fält ifyllda så att varje kolumn får en typ.
-
2
Välj utdataformat
SQL CREATE TABLE (Postgres- / MySQL- / SQLite-stil), Mongoose för Node.js-appar med MongoDB eller Sequelize för relationella Node.js-appar.
-
3
Namnge tabellen eller modellen
Anger tabellnamnet i SQL-utdatan, eller schema- eller modellnamnet i Mongoose- och Sequelize-utdatan.
-
4
Kopiera det genererade schemat
Klistra in det direkt i en migration eller en modellfil som utgångspunkt.
Så härleds typerna
Inferensen är en bästa gissning. Verktyget läser värdena i ett exempelobjekt och väljer en kolumntyp för varje nyckel utifrån värdet det ser. Det jämför inte poster och gissar inte vilka fält som är valfria, så ge det ett komplett och representativt objekt.
Typmappning
| JSON-värde | SQL-typ | Mongoose-typ | Sequelize-typ |
|---|---|---|---|
42 (heltal) |
INTEGER | Number | DataTypes.INTEGER |
3.14 (decimaltal) |
DECIMAL(10,2) | Number | DataTypes.FLOAT |
"hej" (kort sträng) |
VARCHAR(255) | String | DataTypes.STRING |
| sträng längre än 255 tecken | TEXT | String | DataTypes.STRING |
"2026-04-18T10:00:00Z" |
TIMESTAMP | Date | DataTypes.DATE |
"2026-04-18" |
DATE | Date | DataTypes.DATEONLY |
true / false |
BOOLEAN | Boolean | DataTypes.BOOLEAN |
null |
TEXT | String | DataTypes.STRING |
[1, 2, 3] (array) |
JSON | Object | DataTypes.JSON |
{ "nested": ... } (objekt) |
JSON | Object | DataTypes.JSON |
Vad SQL-utdatan lägger till
SQL CREATE TABLE börjar alltid med en automatiskt räknande primärnyckel:
id INTEGER PRIMARY KEY AUTOINCREMENT,
Mongoose- och Sequelize-utdatan lägger inte till något id-fält, eftersom båda biblioteken skapar ett åt dig.
Standardvärden och gränser att ha i åtanke
- Ett objekt läses. Om du klistrar in en array granskas bara det första elementet, så det är dess fält som definierar hela schemat.
- En saknad nyckel är en saknad kolumn. Fält som inte finns i exempelobjektet syns helt enkelt inte i utdatan.
- Nästlade objekt och arrayer blir en enda JSON-kolumn. Verktyget veckar inte ut dem i undertabeller, underscheman eller främmande nycklar.
- Inga villkor genereras. Kolumner skapas utan
NOT NULL, unikhet eller index, så alla tillåter null tills du stramar åt dem.
Tips för ett renare resultat
- Använd en helt ifylld post. Ett fält som är
nulli ditt exempel typas som text/sträng, vilket sällan är det du vill ha. - Byt namn på reserverade ord efter genereringen. Fält som
type,orderellerusermåste sättas inom citattecken i SQL. - Behandla utdatan som en byggnadsställning. Justera VARCHAR-längder och DECIMAL-precision, lägg till index, markera kolumner som
NOT NULLoch välj riktiga nycklar innan du går i produktion.
Vanliga frågor
Ett nästlat objekt eller en nästlad array mappas till en enda JSON-kolumn (JSON i SQL och Sequelize, ett Object-fält i Mongoose). Verktyget veckar inte ut nästlade strukturer i undertabeller eller underscheman, så du plattar ut eller normaliserar dem själv vid behov.
Nej. Om du klistrar in en array av objekt granskas bara det första objektet och det är dess nycklar som definierar schemat. Se till att den första posten har alla fält du bryr dig om, med ett riktigt värde i var och en.
Nej. Varje kolumn skapas med enbart en typ, så utdatan har inga främmande nycklar, unikhetsvillkor, index eller NOT NULL-satser. Lägg till dem för hand, eftersom de kodar en avsikt som verktyget inte kan återskapa ur ett stickprov.
Välj SQL CREATE TABLE för en migration av en relationsdatabas, Mongoose Schema för en Node.js-app på MongoDB, eller Sequelize Model för en Node.js-app på en relationsdatabas via Sequelize-ORM:en.
Relaterade verktyg
Webpack-konfigurationsgenerator
Skapa en webpack.config.js för webpack 5 med vanlig JavaScript, React eller Vue: TypeScript, Babel, CSS eller Sass, bilder, HtmlWebpackPlugin, en utvecklingsserver och raden för npm install.
Protocol Buffers-avkodare
Avkoda Protobuf-byte lokalt från hex, Base64, Base64URL, text eller fil, granska fälttolkningar och exportera en privat rapport.
OpenAPI-validerare
Klistra in ett OpenAPI- eller Swagger-dokument i JSON eller YAML och kontrollera dess kärnstruktur: versionsfält, info-objekt och paths, med tydliga fel och varningar.
CSS-laddningsgenerator
Skapa en cirkulär spinnare i ren CSS: ställ in diameter, kanttjocklek, accentfärg och rotationshastighet, förhandsvisa direkt och kopiera den färdiga CSS-koden. Ingen SVG, ingen JavaScript.
XSD-validerare
Validera ett XML-dokument mot ett XSD-schema och rapportera element- och typavvikelser med exakta radnummer.
YAML till JSON
Omvandla YAML-konfiguration till JSON för verktyg och API:er som bara accepterar JSON. Hanterar ankare, merge-nycklar och nästlade strukturer.
Verktyget finns på andra språk
- Schema-inferentie-tool [NL]
- เครื่องมืออนุมาน Schema [TH]
- Herramienta de Inferencia de Esquema [ES]
- Ferramenta de Inferência de Esquema [PT]
- Narzędzie do wnioskowania schematu [PL]
- Outil d'inférence de schéma [FR]
- أداة استنتاج المخطط [AR]
- Alat Inferensi Skema [ID]
- Công cụ suy luận lược đồ [VI]
- 스키마 추론 도구 [KO]
- スキーマ推論ツール [JA]
- Schema-Inferenz-Tool [DE]
- Инструмент вывода схемы [RU]
- Şema Çıkarım Aracı [TR]
- 模式推断工具 [ZH]
- Schema Inference Tool [EN]
- Strumento di Inferenza Schema [IT]