實用工具
輸入
結果
結果會顯示在這裡。模型的結構化輸出、webhook 請求內容或設定檔被拒收時,真正有用的是一份清單:哪些路徑不合格、各自違反了哪條規則。這個驗證器執行的是 Ajv——多數 JavaScript 工具鏈背後的 JSON Schema 實作——並開啟 allErrors,所以有五處問題的文件就會顯示五行:出錯值的 JSON 指標、錯誤訊息,以及 Schema 裡觸發這項錯誤的規則路徑。Schema 放進 Schema 欄位,要驗證的文件放進輸入框。
它是怎麼運作的
- 驗證所用的規範版本跟隨 Schema 本身的 $schema:2020-12 和 2019-09 使用 Ajv 對應的類別,draft-07 或沒有宣告時使用預設類別。
- 已載入 ajv-formats,所以 email、date-time、uri、uuid 這些 format 會真的被檢查,而不是被默默忽略。
- Ajv 的 strict 選項已關閉,examples 之類的註記或廠商自訂關鍵字不會中斷驗證;如果 Schema 本身寫錯,會明確回報出來。
你的資料去了哪裡
哪也沒去。本工具完全在你的瀏覽器裡執行:你貼上的文字由頁面處理,不會傳輸到任何伺服器,也不會寫進任何紀錄。
本工具免費且免登入,執行結果只存在於你目前的頁面裡,不會被儲存到任何地方。
它要花多少
本工具完全免費,不需要登入,也不消耗點數。
常見問題
- 為什麼我的 draft-04 Schema 被拒絕?
- draft-04 的 exclusiveMinimum 和 exclusiveMaximum 是布林值,之後的版本改成了數字,用新版本去跑舊 Schema 可能會放過本該失敗的資料。與其用猜的,工具會請你更新 $schema。draft-06 的 Schema 會以 draft-07 驗證,因為 draft-07 只是在它的基礎上增加關鍵字。
- 每行 at 後面那段路徑是什麼意思?
- 那是失敗規則在 Schema 裡的路徑,例如 #/properties/items/items/properties/price/minimum。每行開頭的路徑指向你的資料,這第二個路徑則指向 Schema。當你發現錯的其實是 Schema 而不是資料時,這個路徑能直接帶你找到要修改的那條規則。
- 會從網路下載 $ref 參照的 Schema 嗎?
- 不會。同一份 Schema 內部的參照(#/$defs/… 或 #/definitions/…)可以正常解析,但遠端的 $ref 網址不會被下載,依賴它的 Schema 會編譯失敗,並在錯誤訊息中指出是哪個參照。想要離線驗證,就把被參照的定義貼進 $defs 裡。
背後的開源專案
本工具執行在 ajv-validator/ajv 之上,以 MIT 授權發布。如果你需要在自己的程式裡實作同樣的能力,直接用這個函式庫。
ajv-validator/ajv也常被稱作
- json schema 驗證
- json schema 線上驗證
- ajv 線上
- json 格式檢查工具
- json schema 2020-12
- json schema draft 7