概觀
使用案例
探索您可以使用 JSON Schema 做的一切。本節介紹 JSON Schema 最常見的使用案例,但可能還有更多應用有待發現。
結構驗證
結構驗證是指 JSON 文件應該遵循的結構,例如哪些屬性必須存在、預期在哪裡使用什麼類型的數值,以及它們必須看起來像什麼。
語義註解
需要註解 JSON 文件中的數值:為了機器可讀性以及文件記錄目的。
領域特定語言
開發人員可能會編寫一個在內部使用 JSON Schema 作為領域特定語言的應用程式,因此 schema 只會由單一方在單一應用程式內使用。透過使用宣告式語言,可以比人類更好地最佳化應用程式需求。
通用詞彙
一個開發團隊維護兩個相似的應用程式,但針對不同的平台,使用不同的語言。應用程式會從 JSON 文件的通用儲存庫下載和讀取。他們想確保兩個應用程式都接受或拒絕具有相同行為的 JSON,因此他們編寫一個 JSON Schema 並將其部署到兩個應用程式。
模型驅動的 UI 約束
當伺服器宣告提交必須滿足的約束時,使用者介面需要接收這些約束,以提供允許值的模型驅動驗證,使表單對使用者更具可存取性。
UI 產生
JSON Schema 可用於自動產生符合給定 schema 的使用者介面。
模糊測試、列舉和產生
安全性應用程式需要在有效集合內和有效集合外產生 JSON 文件的範例。
部分驗證
由於技術限制,某些 JSON 解析器可能只能理解 JSON 值空間的子集,因此驗證應用程式讀取的值,而不是提供給 JSON 解析器的 JSON 文件是有意義的。
Web 資源的機器可讀設定檔
提供 JSON 文件的 Web 伺服器應該能夠連結到設定檔文件,該文件以機器可讀的形式描述資料的含義。
Schema 推斷
這在資料科學中非常有用。您可能擁有龐大的 JSON 資料集,並且不太了解其結構。您可以使用一些工具,從資料中推導出 JSON Schema,以便更好地理解並對其進行處理。
超媒體
通用使用者代理程式必須能夠利用 schema 的演變,包括 Web 瀏覽器、網路爬蟲和自動化工具。它應該支援鬆散耦合(如 HTML 首頁);因此 schema 應該能夠變更、新增和刪除功能,同時盡量減少相容用戶端的損壞。
結果和報告
提供 schema 和輸入的一方可能與執行驗證的一方不同;在這種情況下,應該有一種標準方法來抽象化驗證器介面,並報告驗證操作的結果(驗證結果、註解和錯誤)。
外部驗證
作者可以嵌入其他媒體類型的資源,例如文字文件或 base64 或十六進位編碼的二進位文件;並且可能希望將這些文件的驗證傳遞給其他軟體工具。
文件內資料一致性驗證
JSON 文件可能會攜帶必須在內部一致的關聯式資料。
跨資料庫一致性驗證
JSON 文件可能會攜帶必須根據外部資料來源驗證的關聯式資料。
程式碼檢查
有時需要格式化,這不會影響文件在應用程式層級的含義,而是純粹為了美觀或相容性原因而指定需求。