happytails.ai
繁體中文

JSON Schema 合併器

將多個 JSON Schema,或一個 allOf 組合,合併為單一結構描述。無法同時滿足的規則會列為衝突。

最多 100,000 個字元和 2 到 50 個結構描述。所有處理都在瀏覽器中進行。可下載合併後的 JSON 結構描述、JSON 報告和衝突 CSV 清單。 JSON 結構描述陣列,或包含 allOf 的單一結構描述。也支援 YAML。 最多 100,000 個字元。 執行前請檢查設定。

處理結果

回報問題或分享想法。

JSON Schema 合併器
  1. 貼上 JSON 結構描述陣列,或一個 allOf 列出這些結構描述的結構描述。
  2. 選擇 JSON Schema 草案版本,或保留自動偵測。
  3. 執行合併並檢閱衝突及 allOf 中保留的規則。
  4. 下載合併後的結構描述和衝突報告。

使用須知

最多 100,000 個字元和 2 到 50 個結構描述。所有處理都在瀏覽器中進行。可下載合併後的 JSON 結構描述、JSON 報告和衝突 CSV 清單。

規則的組合方式

型別會取交集;enum 和 const 值也取交集;minimum 和 maximum 界限會採用更嚴格的值;required 清單會合併;屬性會逐一合併。當一個結構描述禁止額外屬性時,另一個結構描述單獨定義的屬性也會遭禁止;若該屬性是必要的,就會列出衝突。

保留在 allOf 中的內容

有些關鍵字無法精確組合,例如兩個不同的正規表示式、oneOf、not、if 和 then、與其他屬性規則同時使用的 patternProperties,以及 unevaluated 屬性。這些規則會保留在合併結構描述的 allOf 中並列入報告,因此結構描述的意義不會改變。

正在檢查結果

衝突會標示其結構描述位置。選填屬性或純數字規則中的衝突本身並不表示整個結構描述無法滿足。只有在有界結構證明確認不存在可滿足合併結構描述的實例時,報告才會標記 provenUnsatisfiable。否則該標記不構成可滿足性證明。沒有衝突時,選用的樣本檢查會使用 Ajv,以另一個組合結構描述驗證每個結構描述產生的候選項。各輸入結構描述保留自己的本機參照根。樣本是證據,不是窮盡的等價性證明。若結構描述將 __proto__ 用作屬性、pattern 或 dependency 索引鍵,驗證器會拒絕,因為內建驗證器無法可靠檢查該索引鍵。含有該索引鍵的字面執行個體資料會予以保留。