logo
GeekFormat

JSON Schema 驗證器

相關推薦

功能特點

  • 標準 Draft-07 驗證:完全遵循 JSON Schema Draft-07 規範,支援類型、必填、屬性、正規表達式、格式、列舉等全方位基礎規則驗證
  • 強大組合邏輯:支援 allOf、anyOf、oneOf、not 等進階組合關鍵字,輕鬆應對複雜巢狀結構與多重約束的驗證場景
  • 精準錯誤定位:提供詳細的錯誤路徑與語義化報錯訊息,幫助開發與測試人員快速定位 API 合約衝突與資料結構異常
  • API 合約測試:完美適配前後端介面聯調與自動化合約測試,確保實際回傳資料與介面文件定義的 Schema 嚴格一致
  • 本地端快速處理:純瀏覽器端運算,無需上傳伺服器,確保您的敏感業務資料結構與測試資料隱私安全,處理速度極快無延遲

常見問題

如何使用 JSON Schema 驗證 API 回傳的資料?

只需將您預期的 JSON Schema 定義貼到左側,將 API 實際回傳的 JSON 資料貼到右側。工具會自動比對兩者結構,精準驗證資料類型、必填欄位、正規表達式等規則。這是進行 API 合約測試、確保前後端資料結構一致性的必要步驟。

支援哪些 JSON Schema 標準與驗證規則?

工具完全遵循 JSON Schema Draft-07 標準。支援基礎的類型檢查(type)、必填欄位(required)、屬性定義(properties)、正規表達式比對(pattern)、格式驗證(format)、列舉值(enum),以及強大的組合邏輯驗證(allOf, anyOf, oneOf, not)。

驗證失敗時如何快速找到錯誤位置?

當 JSON 資料與 Schema 不符時,工具會產生非常詳細的錯誤報告。報告會精準指出出錯的 JSON 路徑、具體的錯誤類型(如類型不符、缺少必填欄位)以及對應的 Schema 規則,大幅提升後端開發與資料清洗的除錯效率。

如何利用 JSON Schema 進行自動化資料治理?

在 ETL 資料清洗或資料入库前,您可以先用本工具驗證資料是否符合預先定義的 Schema 規範。這能有效攔截髒資料與異常資料,確保進入資料庫或下游系統的資料品質,是建構穩健資料管線的重要環節。

線上驗證 JSON Schema 會洩露我的資料隱私嗎?

不會。我們的 JSON Schema 驗證器完全在您的瀏覽器本地進行處理,無論是企業核心 API 資料結構還是個人業務資料,都不會上傳到任何伺服器,確保您的資料隱私獲得企業級的安全保障。

JSON Schema 關鍵字速查表

下表列出了 JSON Schema 規範中最常用的驗證關鍵字,按功能分類整理,方便快速查閱。

關鍵字說明
基礎類型
type指定資料類型:string、number、integer、boolean、array、object、null。支援單類型或類型陣列。
物件驗證
properties定義物件各屬性的子 Schema。
required字串陣列,指定哪些屬性是必填的。
additionalProperties控制是否允許未在 properties 中定義的額外屬性,可設為 false 或一個 Schema。
propertyNames約束屬性名必須匹配的 Schema(通常用 pattern 正則)。
minProperties物件最少包含的屬性數量。
maxProperties物件最多包含的屬性數量。
列舉常數
enum列舉值陣列,資料必須是陣列中的某一個值。
const常數值,資料必須嚴格等於該值。
數值約束
minimum數值最小值(包含邊界)。
maximum數值最大值(包含邊界)。
exclusiveMinimum數值嚴格大於(不包含邊界)。
exclusiveMaximum數值嚴格小於(不包含邊界)。
multipleOf數值必須是指定數的倍數。
字串約束
minLength字串最小長度。
maxLength字串最大長度。
pattern正規表示式,字串必須匹配該模式。
format語義格式驗證:email、uri、date-time、uuid、ipv4、ipv6、hostname 等。
陣列約束
items定義陣列元素的 Schema(單 Schema 適用於所有元素)。
minItems陣列最少元素個數。
maxItems陣列最多元素個數。
uniqueItems陣列元素是否必須唯一。
contains陣列中至少有一個元素匹配該 Schema。
組合邏輯
allOf資料必須匹配所有子 Schema(邏輯與)。
anyOf資料至少匹配一個子 Schema(邏輯或)。
oneOf資料必須恰好匹配一個子 Schema(互斥或)。
not資料必須不匹配該 Schema(邏輯非)。
條件驗證
if條件判斷 Schema,資料匹配 if 時需滿足 then,否則需滿足 else。
thenif 條件成立時需要滿足的 Schema。
elseif 條件不成立時需要滿足的 Schema。
引用複用
$ref引用其他 Schema 定義,支援本地引用(#/$defs/xxx)和遠端引用。
$defs定義可複用的子 Schema(Draft 2019-09+,舊版用 definitions)。
definitionsDraft 4-7 中用於定義可複用子 Schema 的關鍵字。
元資訊
titleSchema 的標題說明(註解,不參與驗證)。
descriptionSchema 的詳細描述(註解,不參與驗證)。
default預設值(註解,不參與驗證)。
examples示例值陣列(註解,不參與驗證)。
$schema指定使用的 JSON Schema 規範版本。
依賴關係
dependentRequired屬性依賴:某個屬性存在時,要求其他屬性也必須存在(Draft 2019-09+)。
dependenciesDraft 4-7 中的依賴關鍵字,兼具屬性依賴和 Schema 依賴功能。

JSON Schema 各版本差異對比

JSON Schema 經歷了多個 Draft 版本演進,Draft 7 是目前最廣泛使用的版本,Draft 2020-12 是最新穩定版。

功能特性Draft 4Draft 6Draft 72019-092020-12
type 類型驗證
required 必填欄位
enum/const 常數✓ enum
minimum/maximum 數值範圍
exclusiveMinimum/Maximum布林值數值數值數值數值
multipleOf 倍數驗證
minLength/maxLength
pattern 正則匹配
format 格式驗證預設註解預設註解
items 陣列驗證
contains 包含元素
minItems/maxItems
uniqueItems
additionalProperties
propertyNames
allOf/anyOf/oneOf/not
if/then/else 條件
$ref 引用
$defs 定義複用definitionsdefinitionsdefinitions$defs$defs
dependentRequired
prefixItems 元組驗證陣列形式陣列形式陣列形式陣列形式prefixItems
unevaluatedProperties
$dynamicRef/$anchor✓ $recursiveRef✓ dynamicRef