📋

JSON Schema 產生器

從 JSON 資料自動產生 JSON Schema 並進行類型推斷

JSON 輸入

Schema 選項

Schema 版本
Draft 2020-12 (Latest)

什麼是 JSON Schema

JSON Schema 是一種詞彙表,允許您註釋和驗證 JSON 文件。它為 JSON 資料提供契約,定義預期的結構、類型和驗證規則。JSON Schema 廣泛用於 API 文件、資料驗證、程式碼生成和測試。它有助於確保應用程式之間的資料品質和一致性。

功能特點

🔮

智慧類型推斷

從 JSON 值自動偵測資料類型,包括字串、數字、布林值、陣列、物件和 null,智慧偵測 email、URL、日期、時間等格式
📋

多版本支援

支援 JSON Schema Draft 2020-12、2019-09、Draft-07 和 Draft-04,提供正確的 $schema URI 和版本特定功能

驗證規則

配置必填欄位、類型約束、格式驗證和嚴格模式,使用 additionalProperties 控制實現強大的 schema 定義
⚙️

靈活配置

根據 API 文件和驗證需求,選擇包含或排除欄位描述、範例和嚴格驗證規則

📋使用指南

1️⃣
輸入 JSON 資料
貼上您的範例 JSON 資料或載入範例開始
2️⃣
配置選項
選擇 Schema 版本,啟用必填欄位、描述和其他選項
3️⃣
產生 Schema
點擊產生以建立具有自動類型推斷的 JSON Schema
4️⃣
使用 Schema
複製或下載產生的 schema 用於 API 驗證或文件

📚技術介紹

📐JSON Schema 規範

JSON Schema 是用於描述 JSON 資料結構和驗證規則的宣告性語言。它使用 '類型'、'properties'、'必填'、'項目' 和 'additionalProperties' 等關鍵字來定義約束。該規範經歷了多個草案版本的演進,Draft 2020-12 是最新的穩定版本。Schema 本身是有效的 JSON 文件,可用於驗證、文件化和程式碼生成。

🔍類型推斷演算法

產生器分析 JSON 值以推斷適當的 schema 類型。對於原始值,它偵測 字串、number、integer、boolean 或 null。對於字串,它使用正規表示式模式應用格式偵測,識別 email、uri、date、time、ipv4、ipv6 和其他標準格式。對於物件,它遞迴產生帶有屬性定義的巢狀 schema。對於陣列,它從第一個元素推斷 schema。

驗證關鍵字

JSON Schema 提供豐富的驗證關鍵字:'類型' 用於資料類型,'必填' 用於必填欄位,'properties' 用於物件 schema,'項目' 用於陣列,'minimum'/'maximum' 用於數字,'minLength'/'maxLength' 用於字串,'pattern' 用於正規驗證,'enum' 用於允許值,'格式' 用於語義驗證如 email 或 URL。這些關鍵字組合建立全面的驗證規則。

🔄Schema 版本

JSON Schema 經歷了多個草案版本的演進:Draft-04(2013年,廣泛支援)、Draft-07(2018年,新增 if/then/else)、Draft 2019-09(引入 $recursiveRef)和 Draft 2020-12(最新,具有 $dynamicRef 和改進的詞彙表)。每個版本在新增新功能的同時保持向後相容性。$schema 關鍵字指定 schema 使用的版本。

常見問題

什麼是JSON Schema,為什麼要使用它?

JSON Schema是一種用於註釋和驗證JSON文件的詞彙表。它使用JSON格式本身描述資料結構、約束和驗證規則。優勢包括:自動資料驗證、API文件、程式碼產生、改善開發者體驗和基於契約的開發。它廣泛用於API設計、設定驗證和表單產生。
💬

這個工具可以從任何JSON產生schema嗎?

可以!此工具分析任何有效的JSON輸入並產生相應的JSON Schema Draft-07相容schema。它處理所有JSON資料類型:物件、陣列、字串、數字、布林值和null。它從您的範例資料推斷類型、必填欄位和基本模式。對於複雜場景,您可能需要手動最佳化產生的schema。
🔍

產生的schema有多準確?

產生器基於樣本資料分析建立schema。它準確識別資料類型和結構,但對約束做保守假設。例如,它不會知道數字是否應該只為正數,或字串是否必須符合特定模式,除非這些約束出現在所有樣本中。始終使用您的領域特定驗證規則審查和增強產生的schema。
💡

我可以使用產生的schema進行驗證嗎?

當然!產生的schema完全相容JSON Schema驗證器,如Ajv、joi或json-schema程式庫。您可以使用它驗證API請求/回應、設定檔或使用者輸入。該schema遵循JSON Schema Draft-07規範,可以整合到節點.js、Python、Java或任何支援JSON Schema的語言中。
📚

不同JSON Schema草案之間有什麼區別?

JSON Schema經歷了多個草案演變(Draft-04、Draft-06、Draft-07、2019-09、2020-12)。此工具產生廣泛支援的Draft-07 schema。主要區別:Draft-07新增了if/then/else條件,Draft 2019-09引入詞彙系統,Draft 2020-12新增unevaluatedProperties。對於大多數用途,Draft-07提供出色的相容性和功能集。

🔗相關文件

📝更新日誌

📌v1.0.251025
v1.0.251026建立 JSON Schema 產生器工具;支援多個 Draft 版本(2020-12、2019-09、Draft-07、Draft-04);智慧類型推斷,自動偵測格式(email、URL、日期、時間);CodeMirror 編輯器,自動跟隨深色主題;配置選項支援必填欄位、描述、範例和嚴格模式;一鍵複製和下載功能(2025年10月26日)

User Comments

0 / 2000
Loading...