Så här använder du det
- Klistra in JSON i inmatningsfältet, öppna en .json-fil eller prova exemplet.
- Ange namnet på rottypen, till exempel Order eller ApiResponse.
- Välj interface- eller typdeklarationer samt om export och readonly ska läggas till.
- Kopiera den genererade TypeScript-koden eller ladda ned den som types.ts.
Så fungerar det
Generatorn går igenom hela JSON-dokumentet och registrerar de värdetyper som finns på varje plats. Varje JSON-objekt blir en egen namngiven deklaration. Namnet kommer från egenskapsnyckeln skriven i PascalCase, så “shipping_address” blir ShippingAddress. Element i en array namnges efter nyckelns singularform: “items” ger Item, “categories” ger Category, och nycklar som inte ser ut som plural får suffixet “Item”.
Alla objekt i en array slås samman till ett interface. Om en nyckel bara finns i några av dem markeras den som valfri med “?”. Om ett värde har olika typer på olika ställen blir typen en union, till exempel string | number. null behålls som en egen typ, så ett fält som ibland är null blir string | null. En tom array blir unknown[], eftersom det inte finns något att härleda typen från. Två objekt med exakt samma egenskaper och typer delar ett interface i stället för att skapa dubbletter. Nycklar som inte är giltiga identifierare, till exempel “first-name”, omges med citattecken.
Resultatet beskriver bara det exempel du klistrar in. Ett fält som i verkligheten är valfritt eller kan vara null blir obligatoriskt och icke-null om ditt exempel inte visar det, och datum kommer som vanliga strängar. Kontrollera typerna mot din API-dokumentation innan du förlitar dig på dem.
Exempel
Typa ett API-svar
Klistra in en order från ditt butiks-API med rotnamnet Order. Du får interfacen Order, Customer, Item och Shipping, med note?: string på Item eftersom bara ett av de två objekten har en anteckning.
Skrivskyddad konfiguration
Klistra in en config.json, markera “Gör egenskaper skrivskyddade” och klistra in resultatet i config.d.ts, så att oavsiktliga skrivningar till konfigurationen fångas av kompilatorn.
Array på toppnivå
En liständpunkt returnerar [{…}, {…}]. Med rotnamnet Product börjar resultatet med “export type Product = ProductItem[];” följt av interfacet ProductItem.
Vanliga frågor
Varför blir ett fält valfritt i resultatet?
Eftersom minst ett objekt i samma array saknar den nyckeln. Om alla objekt har den blir den obligatorisk. Klistra in flera poster för att få mer korrekta valfria fält.
Varför får ett datum typen string?
JSON har ingen datumtyp, så datum representeras som strängar. Generatorn gissar inte format. Ändra typen själv om din kod konverterar dem till Date-objekt.
Vad är skillnaden mellan interface och type?
För objektstrukturer fungerar de nästan likadant. Interfaces kan utökas och slås samman genom senare deklarationer; typalias kan inte återöppnas. Välj den stil din kodbas redan använder.
Kan den generera körtidsvalidering som Zod-scheman?
Nej. Den genererar endast TypeScript-deklarationer, som kontrolleras vid kompilering och inte validerar data vid körning.
Integritet
Din JSON analyseras endast i din webbläsare. Inget laddas upp, lagras eller ingår i analyser.