2016-05-02 9 views
1

私のルートJSONオブジェクトの中には、2種類のJSONオブジェクトがたくさんあります。 JSONスキーマを記述して、特定のスキーマ(ジェネリックスキーマ)を取得せずにこれらのオブジェクトを検証する方法があるかどうかは疑問です。ジェネリックJSONスキーマを記述することはできますか?

例えば、私は以下のJSONを持っていると想像:

"Profile": 
{ 
    "Name": 
    { 
     "Type": "String", 
     "Value": "Mike", 
     "Default": "Sarah", 
     "Description": "This is the name of my person." 
    } 
    "Age": 
    { 
     "Type": "Number", 
     "Value": 27, 
     "Default": 18, 
     "Description": "This is the age of my person." 
    } 
} 

このプロファイルJSONオブジェクトは、人物に関するさまざまな詳細のコレクションを表します。注目すべきは、内部オブジェクト、文字列オブジェクト、および番号オブジェクトの2つのタイプがあります。これを考慮して、内部オブジェクトのどれがどのオブジェクトであるかを特定せずに検証するためのJSONスキーマを作成したいと思います。私は "名前"または "年齢"があることに気にせず、適切なStringオブジェクトとNumberオブジェクトを持っていることに気をつけます。

JSONスキーマでこれを行うことはできますか?私が持っているオブジェクトの種類に基づいて一般的なJSONスキーマを作成するにはどうすればいいですか?私のルートJSONオブジェクト内

{ 
"$schema": "http://json-schema.org/draft-04/schema#", 
    "definitions": { 
    "StringObject": { 
     "type": "object", 
     "properties": { 
     "Type": { 
      "type": "string" 
     }, 
     "Value": { 
      "type": "string" 
     }, 
     "Default": { 
      "type": "string" 
     }, 
     "Description": { 
      "type": "string" 
     } 
     }, 
     "required": [ 
     "Type", 
     "Value", 
     "Default", 
     "Description" 
     ] 
    } 
    } 
} 

答えて

1

を私は2つの異なる種類の多くのJSONオブジェクトを持っています。ここでは

は、私がこれまで持っているものです。 JSONスキーマを記述して、特定のスキーマ(ジェネリックスキーマ)を取得せずにこれらのオブジェクトを検証する方法があるかどうかは疑問です。

ユニオンタイプは、これを処理するために定義される:

「ユニオン」タイプの値は、メンバーの種類のいずれかの値として符号化されます。

ユニオンタイプ定義 - タイプ定義の和集合を示す2つ以上のアイテムを持つ配列です。配列の各項目は、単純な型定義またはスキーマです。

{ 
"type": 
    ["string","number"] 
} 

参照

関連する問題