Resjson の動作をエミュレートするために、(string,string) ペアだけで構成される JSON オブジェクトを解析しようとしています。私が解析しているファイルにはこれが含まれています。
{
"greeting":"Hello world",
"_greeting.comment":"Hello comment.",
"_greeting.source":"Original Hello",
}
最後のカンマが間違っていることに注意してください。JSON 構文をテストするためにhttp://jsonlint.com/も使用しました。私が予想したように、それは間違っていると言われています。私の-わずかに変更された-コードは次のとおりです。
string path = @"d:\resjson\example.resjson";
string jsonText = File.ReadAllText(path);
IDictionary<string, string> dict;
try
{
dict = JsonConvert.DeserializeObject<IDictionary<string, string>>(jsonText);
}
catch(Exception ex)
{
// code never reaches here
}
上記のコードは、フォーマットが正しいかのように、3 つのキーを持つ IDictionary を返します。シリアル化すると、取得された文字列には最後のコンマがありません。
私の質問は次のとおりです。
- Newtonsoft.Json は非常に寛容で、ユーザーのわずかなエラーを許容しますか?
- もしそうなら、許容度をより厳しく設定できますか?
- Newtonsoft.Json を許可の有無にかかわらず使用して、文字列が有効な JSON 形式であるかどうかを確認する方法はありますか?