2017-05-31 29 views
1

現在、一部のデータ用にJSONスキーマを作成中です。のは、私のスキーマがこの形式であることを言ってみましょう:JSON Schema enumのすべての可能な組み合わせ

{ 
    "$schema": "http://json-schema.org/draft-04/schema#", 
    "title": "Title", 
    "type": "array", 
    "items": { 
     "type":"object", 
     "properties":{ 
       "property1": { 
        "type": "string", 
        "enum": ["ALPHA", "BETA"] 
       }, 
       "property2": { 
        "type": "string", 
        "enum": ["alpha", "beta"] 
       }, 
       "val": { 
        "type": "number", 
        "min": 0, 
        "max": 100 
       } 
      }, 
     "required": ["property1", "property2", "val"] 
    } 
} 

私の質問は、それは我々が(なしリピートを有する任意の順序で)property1property2値のすべての可能な組み合わせをするよう指定することは可能でしょうか? valの値はほとんど確実にユニークではありません。

"items"オブジェクトの上のスキーマに"minItems": 4, "maxItems": 4,を追加していると思いますが、これはちょうど4つのアイテムで終わることを意味しており、それらが一意であることを保証するものではありません。

私はスキーマ全体を記述したり、ドキュメントへのポインタを探したり、簡単な例を使って適切な方向に私を押し込んでください。

これは、組み合わせの一つとして、故障した(私のポイントを明確にするために含ま)


テストケースは、組み合わせの一つであり、これは失敗し

{"data":[ 
    { 
    "property1": "ALPHA", 
    "property2": "alpha", 
    "val": 7 
    },{ 
    "property1": "ALPHA", 
    "property2": "beta" 
    "val": 16 
    },{ 
    "property1": "BETA", 
    "property2": "alpha" 
    "val": 12 
    } 
]} 

が欠落しています繰り返される

{"data":[ 
    { 
    "property1": "ALPHA", 
    "property2": "alpha" 
    "val": 73 
    },{ 
    "property1": "ALPHA", 
    "property2": "beta" 
    "val": 72 
    },{ 
    "property1": "BETA", 
    "property2": "alpha" 
    "val": 73 
    },{ 
    "property1": "BETA", 
    "property2": "beta" 
    "val": 71 
    },{ 
    "property1": "ALPHA", 
    "property2": "beta" 
    "val": 68 
    } 
]} 
これは

{"data":[ 
    { 
    "property1": "ALPHA", 
    "property2": "alpha" 
    "val": 26 
    },{ 
    "property1": "ALPHA", 
    "property2": "beta" 
    "val": 26 
    },{ 
    "property1": "BETA", 
    "property2": "alpha" 
    "val": 32 
    },{ 
    "property1": "BETA", 
    "property2": "beta" 
    "val": 83 
    } 
]} 

を渡す必要があります

これも

{"data":[ 
    { 
    "property1": "ALPHA", 
    "property2": "beta" 
    "val": 15 
    },{ 
    "property1": "BETA", 
    "property2": "alpha" 
    "val": 6 
    },{ 
    "property1": "ALPHA", 
    "property2": "alpha" 
    "val": 65 
    },{ 
    "property1": "BETA", 
    "property2": "beta" 
    "val": 37 
    } 
]} 
+1

試しましたか?これはコード作成サービスではありません –

+0

@DarrenSweeney私はJSONスキーマを使い慣れていますので、私は見た目には思えるかもしれませんが、有用なものは何も見つかりませんでした。このウェブサイトは通常、私が立ち往生しているときに私を正しい方向に向けるのにとても良いです、そして私が見つけることができる限り、誰もこのような質問をしていませんでした。私が考えることができるのは制限されているので、配列に正確に4つのアイテムがなければならないが、これはすべてがユニークであることを保証するものではない。 – lioness99a

答えて

0

を渡す列挙値を使用すると、オブジェクトレベルでそれを使用することができ、オブジェクトことができなければなりません。

+0

少し拡大してください。私はあなたが意味することを理解していない – lioness99a

0

私はそれを行うことができますが、解決策はそれほど複雑ではなく、読めないほど価値がないことになります。あなたのケースでは確かにわかりませんが、通常、このような状況は、データ構造をどのように設計したかの貧弱な選択を示しています。私はあなたのデータをどのように再構築するかを検討します。

関連する問題