1

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 形式であるかどうかを確認する方法はありますか?
4

0 に答える 0