Json.NET で予期しない文字解析エラーが発生しました
Json.NET を使用しているときに、次の例外が発生することがあります。解析値: e. パス ''、行 0、位置 0。このエラーは、オブジェクトに逆シリアル化される JSON データに無効な文字または形式が含まれていることを示します。
この問題を解決するには、使用されている JSON データが有効であり、JSON 標準に準拠していることを確認することが重要です。このエラーの一般的な原因の 1 つは、実際の JSON データではなくファイル パスを逆シリアル化しようとすることです。
提供されたコードでは、次の行がこの問題に関連しています:
File.WriteAllText(tmpfile, JsonConvert.SerializeObject(current), Encoding.UTF8); ViewerStatsFormat current = JsonConvert.DeserializeObject<ViewerStatsFormat>(tmpfile);
File.WriteAllText() メソッドはデータをファイルに書き込みますが、tmpfile はファイルパスを表す文字列であり、実際の JSON データではありません。その後、JsonConvert.DeserializeObject() を使用して tmpfile から読み取ると、ファイル パスを JSON として逆シリアル化しようとし、エラーが発生します。
これを修正するには、ファイルから JSON データを読み取る必要があります。それを JsonConvert.DeserializeObject() に直接渡します。修正されたコードは次のとおりです。
string jsonString = File.ReadAllText(tmpfile); ViewerStatsFormat current = JsonConvert.DeserializeObject<ViewerStatsFormat>(jsonString);
最初に File.ReadAllText() を使用してファイルを文字列に読み取ることで、正しい JSON データが JsonConvert.DeserializeObject() に提供され、「予期せぬエラー」が解決されるはずです。値の解析中に文字が検出されました」エラー。
以上がJson.NET で「値の解析中に予期しない文字が発生しました」エラーを解決する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。