Json.NET での予期しない文字エラー
Json.NET を使用して JSON データを解析しているときに、次のエラー メッセージが表示される場合があります。
「値の解析中に予期しない文字が見つかりました: e. パス ''、行 0、位置0."
説明
このエラーは通常、解析中の JSON 文字列が整形式でないか、無効な文字が含まれている場合に発生します。エラー メッセージによると、問題は JSON 文字列の先頭で発生しています。
Json.NET の使用法
コードは、 ViewerStatsFormat 型のオブジェクト。 JsonConvert.SerializeObject を使用したシリアル化プロセスは正しく動作しており、共有した JSON ファイルは有効であるようです。
逆シリアル化の問題
しかし、試行すると問題が発生します。 JsonConvert.DeserializeObject を使用して JSON ファイルを ViewerStatsFormat オブジェクトに逆シリアル化します。 JSON 文字列自体ではなく、ファイル パスが DeserializeObject に渡されているようです。
解決策
この問題を解決するには、実際の JSON を渡すようにしてください。ファイルパスの代わりに文字列を DeserializeObject に渡します。コードの修正部分は次のとおりです。
try { string json = File.ReadAllText(tmpfile); ViewerStatsFormat current = JsonConvert.DeserializeObject<ViewerStatsFormat>(json); // other stuff } catch(Exception ex) { // error logging stuff }
JSON ファイルを文字列に読み取り、それを DeserializeObject に渡すことで、「値の解析中に予期しない文字が検出されました」エラーを解決する必要があります。
以上がJson.NET が逆シリアル化時に「予期しない文字」エラーをスローするのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。