7

XML に対する Qt のサポートは非​​常に強力で、XML スキーマの検証もサポートされています。

JSON に対する Qt のサポートはそれほど広範ではないようです。私が見つけることができるものは、Qt でのjson-schemaまたはその他の種類のJson スキーマ検証のサポートを確認または拒否しているようには見えません。

Qt/C++でjsonを検証する健全な方法はありますか?

編集: 明確にするために、この質問は、任意のドキュメントが有効な Json であるかどうかを確認するだけでなく、Json schema validationに集中しています。

4

4 に答える 4

3

実際、Qt 5.1 であっても、JSON スキーマの検証に対する Qt のサポートはないようです。自分で書くのは非常に時間がかかるため、次のことをお勧めします。

  • 開発者がスキーマを提供した場合は、JSON スキーマ検証を使用して検証せず、代わりに解析された JSON のハードコーディングされた検証を実行します (つまり、必要なフィールドが存在し、正しい型であることを手動で確認します)。 、および指定された境界内にある)

  • 外部の JSON スキーマの処理が必要な場合 (つまり、スキーマが事前に不明であり、おそらくユーザー定義である場合)、Qt を使用せずに、WJElement (json-schema Web サイトにリンクされているもの) のような独立した C/C++ JSON バリデーターを使用してください。 )

于 2013-09-04T22:51:28.877 に答える
0

スキーマ検証も含まれていないhttp://qjson.sourceforge.net/が存在します。

また、いくつかのスキーマ検証を含むqtplaygroundに Qtjsonstreamも存在しますが、私はそれを使用していないので、それについて他に何も知りません。

于 2013-09-05T09:34:18.460 に答える
-2

qt-jsonを yse することをお勧めします。これには、有効かどうかのような単純な検証があります。

bool ok;
QtJson::JsonObject result = QtJson::parse(json, ok).toMap();
于 2013-09-05T08:46:13.513 に答える