2016-08-11 4 views
0

jsonのファミリを定義するjsonスキーマで作業しています。どのように強制するのか分からない。有効なjsonファイルでは、(他のものの中でも)2つのオブジェクトがあるはずです。最初のオブジェクトをentitiesとし、2番目のオブジェクトをfieldsとしましょう。 entitiesオブジェクトには、エントリも含まれています。このエントリには、キーのセットからのキーがfieldsにあるオブジェクトが含まれている必要があります。説明を明確にするために、私は、次の有効なJSONを使って説明します:jsonのある部分にキーセットを適用して、jsonスキーマを使用してjsonの別の部分にキーのセットをサブセット化します。

{ 
    "entities": 
    { 
    "entity1": 
    { 
     "entityFields": 
     { 
     "field1": {}, 
     "field2": {} 
     } 
    }, 
    "entity2": 
    { 
     "entityFields": 
     { 
     "field4": {}, 
     "field5": {} 
     } 
    }, 
    "entity3": 
    { 
     "entityFields": 
     { 
     "field1": {}, 
     "field5": {} 
     } 
    } 
    }, 
    "fields": 
    { 
    "field1": {}, 
    "field2": {}, 
    "field3": {}, 
    "field4": {}, 
    "field5": {}, 
    "field6": {} 
    } 
} 

は、各エンティティがfieldsの下に、以下の定義されたフィールドの集合から来るエンティティフィールドを持っていることを確認します。これが私が強制しようとしている制約です。一般に、私はjsonのある部分のキーセットを、jsonの別の部分のキーセットのサブセットにする方法を教えてください。具体的には、有効なjsonの集合からこれを要求するには、jsonスキーマに何を追加する必要がありますか?

答えて

1

jsonスキーマでこれを実行する方法はありません。

次のオプションがあります。

  • を最初に生成に対してフィールドを検証、その後、プログラムによってこれらからJSONスキーマを生成し、あなたのentitiesentityFieldsを通過する任意のJSONスキーマ
  • せず、手動で検証を行いますスキーマentitiesentityFieldsは、いくつかの素朴なタイプのシステムを形成します。この概念では、これらのタイプのシステム(jsonスキーマ)に変換することができます。
関連する問題