我正在嘗試構建滿足以下條件的 JSON 模式:聲明具有至少一個屬性的頂級對象每個屬性的值將是一個數組,每個數組必須包含確切的N項目數組項必須是取自閉區(qū)間的整數[J, K],或者null每個數組中的整數項在該數組中必須是唯一的沒有應用唯一性約束null(因此N和區(qū)間大小之間沒有隱含關系K-J)我遇到的問題是#4 和#5。使用此模式很容易滿足前 3 個要求以及第 4 個要求的一部分:{ "$schema": "http://json-schema.org/draft/2019-09/schema#", "type": "object", "minProperties": 1, "additionalProperties": { "type": "array", "minItems": N, "maxItems": N, "items": { "anyOf": [ { "type": "integer", "minimum": J, "maximum": K }, { "type": "null" } ] }, "uniqueItems": true }}我不確定如何(或者是否有可能)指定一個uniqueItems僅將約束應用于允許項的子集的數組。我嘗試移動uniqueItems到架構的較低級別,希望它可以在受限范圍內運行,但這不起作用。這也許可以使用條件語句,但我還沒有走那條路,因為我不確定它是否真的有效,我希望有一種我忽略的更簡單的方法。所以,我的問題是:有沒有一種方法可以指定一個 JSON 模式數組,該數組有選擇地僅對不是的項目強制執(zhí)行唯一性約束null?
JSON Schema:非空元素唯一的數組
慕標琳琳
2023-05-25 16:11:16