コードの基礎として、公式ドキュメントのこの例を使用しました。
私は次のようなjson文字列を検証しています:
var jsonText = File.ReadAllText(fileName);
var schema = JsonSchema.Parse(File.ReadAllText("schema.jsonschema"));
var jObj = JsonConvert.DeserializeObject(jsonText) as JObject;
IList<string> messages;
if (!jObj.IsValid(schema, out messages))
{
foreach (var message in messages)
{
Console.WriteLine(message);
}
}
これは機能しますが、表示されるエラーメッセージには、問題のある行番号が含まれていません。次に例を示します。
タイプが無効です。文字列が必要ですが、整数を取得しました。
リンクされた例は、メッセージに行番号が含まれている必要があることを示していますが、そうではありません。たぶん、この機能は削除されたか、フラグを設定する必要がありますか?可能であれば、出力に行番号とスキーマ項目のdescriptionプロパティを含めたいと思います。