このツールの動作
JSON の標本が、draft 2020-12 の JSON Schema になります。
{ "id": 1, "name": "Ada", "address": { "city": "Paris" } }
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": { "type": "integer" },
"name": { "type": "string" },
"address": {
"type": "object",
"properties": { "city": { "type": "string" } },
"required": ["city"]
}
},
"required": ["id", "name", "address"]
}
入れ子のオブジェクトはその場に書かれます。$defs の節も $ref もありません。標本については、展開した図式のほうが上から下へ読めます。
切り替えが二つ、どちらの答えにも理があるから
- 必須の鍵。 既定で有効です。標本のすべての鍵が並びます。無効にすると
requiredの配列は出ず、鍵の欠けた文書も通ります。 additionalProperties。 既定では緩く、余分な鍵は通ります。厳しくすると、すべてのオブジェクトに"additionalProperties": falseが付き、予期しない鍵は誤りになります。
どちらも標本からは読み取れません。あなたの API についての主張なので、ここで推測せず、あなたに委ねます。
integer と number は字面から
3 は integer、3.0 と 1e3 は number です。JSON の数値型は一つきりなので、数値の書かれ方が、それを生んだものの唯一の痕跡です。10.0 を整数と呼ぶ図式は 10.5 を拒みます。おそらく次の一件です。これらの頁を書く過程で欠陥が見つかり、直すまで、この道具はまさにそれをしていました。
標本が述べていないこと
"n": nullは{"type": "null"}になります。 ほかを受け付けない図式です。null を許す文字列なら、{"type": ["string", "null"]}に直してください。- 空の配列は
{"type": "array"}になり、itemsは付きません。見たことのない要素について何も主張しないためです。 - 型の混ざった配列は
anyOfになり、そこにある形だけを並べます。 formatもminLengthもpatternもありません。 電子メールも UUID も普通の文の文字列も、ここではすべて"type": "string"です。"format": "email"を足すことは、構造を読むことではなく意味を当てにいくことです。そして、その項目を知っているなら、手で最初に足すとよいのもそれです。
プライバシー
すべての処理はブラウザ内のJavaScriptだけで完結します。データがアップロードされることはないため、機密情報でも安心して利用でき、オフラインでも動作します。