Hoppa till innehåll
100% lokalt

JSON till Mongoose-schema

Konvertera en JSON-prov till ett klart Mongoose-schema och modell. Ingen manuell fältinmatning krävs. Stöder matriser och automatisk typdetektering.

Inmatning
Utmatning

JSON till Mongoose-schema

Klistra in ett JSON-dokument — ett enstaka objekt eller en array med dem — och det här verktyget härleder formen och genererar en fungerande ny mongoose.Schema()-definition med en modellexport. Det är byggt för det ögonblick då du har en JSON-nyttolast från ett API, en frövfil eller en gammal databaskopia och behöver en Mongoose-modell utan att skriva varje fält för hand.

Verktyget läser verkliga värden för att välja verkliga typer: strängar blir String, siffror blir Number, en ISO-liknande datumstr blir Date, och ett fält vars namn slutar på "Id" (eller arrayformen "…Ids") blir en ObjectId-referens, eftersom det är så en handskriven schema skulle modellera det. Kapslade objekt blir sitt eget nya mongoose.Schema({...}) inuti föräldern, och en array av objekt blir en array av det kapslade schemat. Alternativen hanterar resten: ge modellen ett namn, markera skalärfält som obligatoriska, bär över exemplets egna värden som standardvärden, växla tidssstämpelalternativet, bestäm om underdokument behåller sitt eget _id, och växla mellan "Id"-suffixerade fält mellan ObjectId och vanlig String. Välj CommonJS- eller ES-modulsyntax och lägg eventuellt till ett matchande TypeScript-gränssnitt under modellen.

Du kan mata in en array med exempeldokument istället för ett för att låta verktyget märka fält som bara finns i några — användbart när verklig data inte är helt enhetlig — dessa blir valfria i det genererade gränssnittet. Windows- och Unix-radbrytningar behandlas identiskt, och inmatning som är för stor för att bearbeta bekvämt rapporteras istället för att frysa fliken. Summan under utmatningen visar antalet fält, antalet kapslade scheman och antalet tecken.

Allt körs lokalt i din webbläsare — det JSON du klistrar in, som kan innehålla verkliga poster, laddas aldrig upp någonstans. När schemat ser rätt ut kopierar du det, hämtar det som en .txt-fil för att klistra in i din egen .js- eller .ts-fil, eller skickar utmatningen tillbaka till inmatningen för att förfina den vidare.

FAQ

Vilka typer detekteras?
String, Number, Boolean, Date (från ISO-liknande datumsträngar), ObjectId (för fält vars namn slutar på "Id" eller "Ids"), kapslade scheman för objekt och matriser av dessa. Ett fält utan tillförlitlig typ, eller ett vars typ skiljer sig åt mellan exempeldokument, blir mongoose.Schema.Types.Mixed.
Kan jag klistra in mer än ett exempeldokument?
Ja. Klistra in en array med objekt och verktyget slår samman dem: ett fält som bara finns i några behandlas som valfritt i det genererade TypeScript-gränssnittet, och ett fält vars typ skiljer sig mellan dokument faller tillbaka på Mixed.
Vad styr "Inkludera _id i underdokument"?
Mongoose ger varje inbäddat underdokument sitt eget _id som standard. Att stänga av det lägger till { _id: false } till varje genererat kapslat schema, vilket är det vanliga valet för underdokument som aldrig efterfrågas på egen hand.
Varför blir ett fält som "userId" ett ObjectId?
Ett fältnamn som slutar på "Id" (singular) eller "Ids" (en array av referenser) är nästan alltid en referens till ett annat dokument, så verktyget renderar det som mongoose.Schema.Types.ObjectId istället för String. Stäng av "Använd ObjectId för 'Id'-fält" om du föredrar vanliga strängar istället.
Laddas min JSON upp någonstans?
Nej. Schemagenerering körs helt i din webbläsare — din JSON, inklusive alla verkliga poster den innehåller, lämnar aldrig din enhet.