問題タブ [json-schema-validator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
json-schema-validator - 必須プロパティの json スキーマの問題
http://json-schema.org/で定義された仕様に基づいて JSON スキーマを作成する必要があります。しかし、必須/必須のプロパティの検証に苦労しています。以下は、3 つのプロパティすべてが必須である場合に記述した JSON スキーマですが、私の場合はいずれか 1 つが必須である必要があります。これを行う方法?。
json - 同様の構造の一般的な JSON スキーマ
私はjsonとjsonスキーマにまったく慣れていないので、質問があります(まだ、それがどれほど意味があるかわかりません)。同様のタイプの構造に共通する json スキーマを作成できますか。例えば:
単一のスキーマを使用して、次の json を検証できます
JSON:
と
類似点:
- どちらも配列内にオブジェクトが 1 つしかありません
- オブジェクトには文字列値があります。
相違点:
- 物件数が違う
- キーは両方で異なります
これはできますか?
json - z-schema を使用した JSON スキーマ ドラフト 03 のコンパイル
いくつかの js オブジェクト用にいくつかのドラフト -03 json スキーマがあります。
そして、私は z-schema https://github.com/zaggino/z-schemaを使用して js オブジェクトのスキーマを検証しています。
私はそのAPIの助けを借りてリモート参照を設定しsetRemoteReference
、ここからdraft-03スキーマオブジェクトを提供しています
http://json-schema.org/draft-03/schema#
しかし、エラーをスローするvalidateメソッドを呼び出します
コンパイルに失敗したようです。しかし、正規のソースhttp://json-schema.org/draft-03/schema#からダウンロードしたスキーマ オブジェクトが間違っている可能性があるのはなぜですか?
それとも、z-schema が draft-03 を効果的にコンパイルできないのでしょうか?
私の質問は、z-schemaを使用してdraft-03を検証するにはどうすればよいですか?
json - 入力jsonデータ内の他の属性の値に対して属性の値をチェックする
データベース テーブル スキーマに関する情報を受け付けています。テーブルの列に関する情報が含まれています。したがって、明らかなように、これらの列name
には type の属性がありますstring
。ただし、それらの名前は、事前に選択された名前リストからのものである必要はありません。それらは、ユーザーが入力したものであれば何でもかまいません。ここで、複合キーにすることができ、ユーザーが入力した列のみを含むテーブルの一意のキーも受け入れたいと考えています。つまり、一意のキーは、json データでユーザーが提供する列で構成できます。
したがって、技術的に必要なのは、一意のキーを表す配列の項目の型となる動的に入力された文字列列挙 (入力 json データから) です。したがって、配列の各要素は列名になります。
たとえば、以下のjsonデータ
有効ですが、
val4
指定された inがリストuniqueKey
に存在しないため、 は無効です。columns
これは、現在の json-schema の仕様と実装で達成できますか? この点で、私は何の方向性も見つけられませんでした。
私の現在のjsonスキーマは次のようになります。
json - JSON スキーマの特定の部分を、コア JSON スキーマに従って単純に検証する必要がある要素として定義する方法はありますか?
生成された JSON スキーマがいくつかあり、JSON スキーマを使用してこれらのスキーマのスキーマを作成しようとしています。その理由は、私が生成したものと一致する JSON スキーマを提供してくれる人が必要だからです。彼らは好きなように作成できますが、最終的にはそれらを使用できるようにする必要があります。
生成されたスキーマには、オブジェクトの各プロパティがコア JSON スキーマを効果的に拡張し、いくつかの小さな変更を加えたオブジェクトがあります。オブジェクト プロパティのスキーマをコア JSON スキーマの拡張としてマークする方法はありますか? Draft 4 で削除された Draft 3 の場合、「extends」キーワードがあると読みました。
たとえば、以下のようなオブジェクト プロパティには、minItems、type、name などのエントリを含めることができますが、readonly や target_model_type などのカスタム エントリを含めることもできます。
json - JSON Enum スキーマの問題 - 有効なスキーマで修正してください
次の JSON ペイロードがあり、要素の 1 つに ENUM タイプの値を追加しようとしています。
そして、これがこのWebサイトを使用して自動生成された後に変更しようとした私のスキーマです。http://jsonschema.net/#/
ここで私の期待どおりに ENUM タイプを手動で追加しました。この SCHEMA の問題を修正してください。
jsonschema - JSON スキーマ内の異なるオブジェクトの選択
領収書のスキーマを作成しており、特殊な領収書の種類 (ホテルの領収書の明細など) のさまざまな詳細オブジェクトを含むコア コンセプトのマスター スキーマを作成したいと考えています。現在の実装ではoneOf
、JSON スキーマのメカニズムを活用しています。
このアプローチの問題は、(tv4 を使用して) 検証すると、指定されたすべてのスキーマoneOf
がチェックされているように見え、実際にはエラーが返されることです。この影響を最小限に抑えるには、detail
プロパティを削除oneOf
し、スキーマ レベル (たとえば の外部properties
) に移動してから、各サブスキーマにルート プロパティ名を作成します。ただし、その場合でも、ホテルの領収書の種類を検証しているときにエラーが発生した場合は、「Missing required property: generalDetail」が表示されます。
だから2つの質問:
detail
私が現在行っているような汎用プロパティを使用して、oneOf
構造内の各サブスキーマをバリデーターに完全に検証させることはできますか (たとえば、oneOf
間違って使用していますか)?- それが不可能な場合は、単に「型指定された」詳細プロパティのセット (「generalDetail」、「hotelDetail」など) を持つだけで十分ですが、それらがグループであることを指定する方法はありますか?検証対象のドキュメントには、そのうちの 1 つだけが存在する必要がありますか?
ティア
json - JSON スキーマを使用した JSON 入力の検証
スキーマで要件として設定されている入力ファイルに要素を指定すると、検証 OK です。また、「maxItems」: 1 を追加すると、入力ファイルに別の要素を追加しても、バリデーターはこれを有効な入力ファイルと見なします。
すなわち: スキーマ:
入力ファイル:
これは無効な入力ファイルであってはなりませんか?
バリデーター: