Erreur de désérialisation : "Caractère inattendu rencontré" dans Json.NET
Lors de l'utilisation de Json.NET avec C#, il est possible de rencontrer un exception avec le message "Caractère inattendu rencontré lors de l'analyse de la valeur." Cette erreur se produit généralement car l'entrée fournie n'est pas dans un format JSON valide.
Dans le cas donné, le problème réside dans l'étape de désérialisation. Le code tente de désérialiser un chemin de fichier dans un objet ViewerStatsFormat en utilisant la ligne suivante :
ViewerStatsFormat current = JsonConvert.DeserializeObject<ViewerStatsFormat>(tmpfile);
Cependant, JsonConvert.DeserializeObject attend une chaîne JSON en entrée, pas un chemin de fichier. La valeur de tmpfile contient probablement une chaîne représentant le chemin d'accès à un fichier sur le disque, ce qui n'est pas un JSON valide.
Pour résoudre ce problème, le fichier doit être lu dans une chaîne puis désérialisé à l'aide de JsonConvert.DeserializeObject :
string fileContents = File.ReadAllText(tmpfile); ViewerStatsFormat current = JsonConvert.DeserializeObject<ViewerStatsFormat>(fileContents);
Alternativement, la fonction File.ReadAllText() peut être utilisée directement dans la désérialisation call :
ViewerStatsFormat current = JsonConvert.DeserializeObject<ViewerStatsFormat>(File.ReadAllText(tmpfile));
En vous assurant que l'entrée dans DeserializeObject est un JSON valide, l'erreur « Caractère inattendu rencontré » peut être évitée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!