JSON naar JSON schemaconverter — Numio
Leidt een JSON-schema (concept-07) af uit een JSON-voorbeeld. Voor arrays van objecten worden alle elementen samengevoegd: een sleutel die in sommige elementen ontbreekt of nul is, is niet vereist.
Een eerste validatieschema maken voor een API-antwoord of webhook-payload op basis van vastgelegde voorbeelden.
Wanneer gebruik je dit?
- Een eerste validatieschema maken voor een API-antwoord of webhook-payload op basis van vastgelegde voorbeelden.
- Een schema produceren om in te voeren in de Ajv-, OpenAPI- of een JSON-schema voor de TypeScript/Zod-stap.
Hoe werkt het
- Plak een JSON-voorbeeld in de linkereditor of gebruik de knop Bestand laden om een UTF-8-bestand te openen. Een array van verschillende records levert betere vereiste lijsten op.
- Lees het schema: elke sleutel in een enkel object is vereist, en sleutels die in sommige array-elementen ontbreken of null zijn, zijn optioneel.
- Kopieer het schema en voeg beperkingen toe die het voorbeeld niet kan weergeven, zoals formaten, enums, geheel getal en minimum.
JSON-voorbeeld
[
{ "id": 1, "name": "Ada", "email": null },
{ "id": 2, "name": "Lin", "email": "lin@example.com" }
]JSON-schema (concept-07)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Generated schema for Root",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"email": {
"type": "string"
}
},
"required": [
"id",
"name"
]
}
}Details en beperkingen
Getallen zijn altijd "type": "nummer"; geheel getal, formaten (e-mail, datum-tijd), opsommingen en patronen worden niet afgeleid. De titel is altijd "Gegenereerd schema voor root".
Een veld dat overal nul is, krijgt een leeg schema {}. Een null die naast andere waarden staat, wordt behandeld als optioneel, niet als type null.
Arrays van gemengd type zoals [1, "x"] worden een tupel (itemlijst met additionalItems: false); een lege array geeft items: {}.
Gegenereerd in uw browser door json_typegen gecompileerd naar WebAssembly. Ongeldige JSON (inclusief volgkomma's) toont de JSON-parseerfout en een enkele waarde, zoals 42, wordt afgewezen omdat deze geen structuur heeft.
FAQ
Welk JSON-schemaconcept wordt uitgevoerd?
Draft-07, gedeclareerd als "$schema": "http://json-schema.org/draft-07/schema#". Er is geen optie om 2019-09 of 2020-12 te kiezen.
Hoe worden optionele velden gedetecteerd?
Alleen voor elementen van dezelfde array: een sleutel die bij sommige objecten ontbreekt, of bij andere nul is, wordt buiten beschouwing gelaten. In één object is elke sleutel vereist.
Kan het een JSON-array in de root converteren?
Ja. De root krijgt "type": "array" en de elementen worden samengevoegd tot één itemsschema, zoals in het voorbeeld.