2016-07-27 2 views
0

ファイルからJSONデータを読み取ることができるソフトウェアを作成しています。このファイルには、 "person"という値がオブジェクトの配列であるオブジェクトが含まれています。 JSONスキーマを使用してライブラリを検証し、コードを直接記述するのではなく内容を検証する予定です。以下のデータを表すJSONスキーマDraf-4に適合する正しいスキーマは何ですか?値がオブジェクトの配列であるオブジェクトのJSONスキーマ

{ 
    "person" : [ 
     { 
     "name" : "aaa", 
     "age" : 10 
     }, 
     { 
     "name" : "ddd", 
     "age" : 11 
     }, 
     { 
     "name" : "ccc", 
     "age" : 12 
     } 
    ] 
} 

書き留めたスキーマを以下に示します。私はそれが正しいかどうか、あるいは他の形式があるかどうか分からないのですか?

{ 
    "person" : { 
     "type" : "object", 
     "properties" : { 
     "type" : "array", 
     "items" : { 
      "type" : "object", 
      "properties" : { 
       "name" : {"type" : "string"}, 
       "age" : {"type" : "integer"} 
      } 
     } 
     } 
    } 
} 

答えて

1

実際に間違った場所に1行しかありませんが、1行でスキーマ全体が分割されます。 "person"はオブジェクトのプロパティであるため、propertiesキーワードの下になければなりません。 JSONスキーマは、「person」を先頭に置くことで、プロパティ名ではなくキーワードとして解釈します。 personというキーワードがないので、JSONスキーマはそれを無視します。したがって、空のスキーマ{}に対して妥当性を検証するのと同じですが、これはJSONドキュメントに含まれる内容に制限を設けません。有効なJSONは空のスキーマに対して有効です。

{ 
    "type" : "object", 
    "properties" : { 
     "person" : { 
     "type" : "array", 
     "items" { 
      "type" : "object", 
      "properties" : { 
       "name" : {"type" : "string"} 
       "age" : {"type" : "integer"} 
      } 
     } 
     } 
    } 
} 

ちなみに、スキンを作成する際に役立つオンラインのJSONスキーマテストツールがあります。この1は私の後藤http://jsonschemalint.com/draft4/#

はまた、ここにもあなたを助けるかもしれない偉大なJSONスキーマのリファレンスです:https://spacetelescope.github.io/understanding-json-schema/

関連する問題