JSON Schema 產生器

在您的瀏覽器中本機執行

從範例 JSON 推斷 Draft 2020-12 JSON Schema

JSON 樣本

貼上 JSON 樣本或載入範例以產生結構描述。
JSON Schema Generator 的用途

它會讀取範例 JSON,並輸出 "$schema" URI 為 https://json-schema.org/draft/2020-12/schema 的 JSON Schema Draft 2020-12 文件。巢狀物件會變成巢狀 properties,陣列會有 items 結構描述,整數標為 integer,其他數字標為 number,可為 null 的欄位則使用 ["string", "null"] 這類型別清單。當物件或陣列與其他型別出現在同一位置時,結構描述會使用每種型別一個分支的 anyOf,因此混合陣列不會讓產生失敗。

使用方式
  1. 1.貼上 JSON 樣本、上傳或拖放一個 .json 檔,或載入範例。包含多筆記錄的陣列能得到最準確的結果。
  2. 2.輸入時結構描述會自動更新;超過 2 MB 的輸入會等你按下「產生結構描述」。
  3. 3.可選擇加入標題,並設定「偵測格式」、「包含範例」、「推斷必填欄位」與「推斷 enum」。
  4. 4.閱讀關於選填、只有 null、混合型別與 enum 欄位的推斷說明。
  5. 5.選擇「驗證樣本」,再複製結構描述或下載 schema.json。
選項如何運作

必填欄位是在某個位置看到的每個物件都具有的鍵,因此在記錄陣列中,只要有一筆缺少某個鍵,它就維持選填。單一物件無法判斷哪些鍵是選填,工具會明確提示。格式(email、uri、date-time、date、time、uuid、ipv4)只在某位置的每個字串都完全符合同一格式時才加入;關閉偵測後所有 format 關鍵字都會移除。enum 預設關閉,只會針對重複出現、不同值很少,且不是 ID、帶格式的值或自由文字的字串推斷,並且一定包含樣本中的所有值。

驗證、限制與隱私

「驗證樣本」會使用 Ajv 的 Draft 2020-12 strict 模式與 ajv-formats 編譯結構描述並檢查樣本,針對每個失敗顯示 JSON Pointer 與規則。從範例推斷的結構描述只描述樣本中出現的內容:物件仍允許額外的鍵,也不會猜測數值範圍、樣式或長度。超出 JavaScript 精度的數字仍會得到正確型別,但不會列為範例。所有處理都在你的瀏覽器中進行,驗證器只會在你要求時載入。

CodingTool 已正式上線於

Launched on StartupBaseCodingTool.dev - Free, Fast & Easy Developer Tools in One Place | Product HuntCodingTool - Featured on Startup FameFazier badgeListed on Turbo0Featured on Twelve ToolsFeatured on Findly.tools