概觀

使用案例

探索您可以使用 JSON Schema 做的一切。本節介紹 JSON Schema 最常見的使用案例,但可能還有更多應用有待發現。

Structural validation

結構驗證


結構驗證是指 JSON 文件應該遵循的結構,例如哪些屬性必須存在、預期在哪裡使用什麼類型的數值,以及它們必須看起來像什麼。

Semantic annotation

語義註解


需要註解 JSON 文件中的數值:為了機器可讀性以及文件記錄目的。

Domain-specific language

領域特定語言


開發人員可能會編寫一個在內部使用 JSON Schema 作為領域特定語言的應用程式,因此 schema 只會由單一方在單一應用程式內使用。透過使用宣告式語言,可以比人類更好地最佳化應用程式需求。

A common vocabulary

通用詞彙


一個開發團隊維護兩個相似的應用程式,但針對不同的平台,使用不同的語言。應用程式會從 JSON 文件的通用儲存庫下載和讀取。他們想確保兩個應用程式都接受或拒絕具有相同行為的 JSON,因此他們編寫一個 JSON Schema 並將其部署到兩個應用程式。

Model-Driven UI constraints

模型驅動的 UI 約束


當伺服器宣告提交必須滿足的約束時,使用者介面需要接收這些約束,以提供允許值的模型驅動驗證,使表單對使用者更具可存取性。

UI Generation

UI 產生


JSON Schema 可用於自動產生符合給定 schema 的使用者介面。

Data Serialization

資料序列化


壓縮 JSON 資料以進行儲存/傳輸。例如:https://jsonbinpack.sourcemeta.com

Fuzzing, enumeration, and generation

模糊測試、列舉和產生


安全性應用程式需要在有效集合內和有效集合外產生 JSON 文件的範例。

Partial validation

部分驗證


由於技術限制,某些 JSON 解析器可能只能理解 JSON 值空間的子集,因此驗證應用程式讀取的值,而不是提供給 JSON 解析器的 JSON 文件是有意義的。

Automated Testing

自動化測試


schema 提供的良好輸入/輸出定義可實現合約和基於屬性的測試情境。例如:https://schemathesis.readthedocs.io/en/stable/

Machine-readable profiles of Web resources

Web 資源的機器可讀設定檔


提供 JSON 文件的 Web 伺服器應該能夠連結到設定檔文件,該文件以機器可讀的形式描述資料的含義。

Schema Inference

Schema 推斷


這在資料科學中非常有用。您可能擁有龐大的 JSON 資料集,並且不太了解其結構。您可以使用一些工具,從資料中推導出 JSON Schema,以便更好地理解並對其進行處理。

Hypermedia

超媒體


通用使用者代理程式必須能夠利用 schema 的演變,包括 Web 瀏覽器、網路爬蟲和自動化工具。它應該支援鬆散耦合(如 HTML 首頁);因此 schema 應該能夠變更、新增和刪除功能,同時盡量減少相容用戶端的損壞。

Results and Reporting

結果和報告


提供 schema 和輸入的一方可能與執行驗證的一方不同;在這種情況下,應該有一種標準方法來抽象化驗證器介面,並報告驗證操作的結果(驗證結果、註解和錯誤)。

External validation

外部驗證


作者可以嵌入其他媒體類型的資源,例如文字文件或 base64 或十六進位編碼的二進位文件;並且可能希望將這些文件的驗證傳遞給其他軟體工具。

Intra-document data consistency validation

文件內資料一致性驗證


JSON 文件可能會攜帶必須在內部一致的關聯式資料。

Inter-database consistency validation

跨資料庫一致性驗證


JSON 文件可能會攜帶必須根據外部資料來源驗證的關聯式資料。

Linting

程式碼檢查


有時需要格式化,這不會影響文件在應用程式層級的含義,而是純粹為了美觀或相容性原因而指定需求。

需要協助嗎?

您覺得這些文件有幫助嗎?

幫助我們讓文件更完善!

在 JSON Schema 中,我們重視文件貢獻,就像其他類型的貢獻一樣!

仍然需要協助嗎?

學習 JSON Schema 通常令人困惑,但別擔心,我們在這裡提供協助!