![](/img/trans.png)
[英]Error Newtonsoft.Json.JsonReaderException: 'Unexpected character encountered while parsing value: S. Path '', line 0, position 0.'
[英]Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: S. Path '', line 0, position 0. Only on certain build
我正在努力將我制作的 discord.net 機器人移植到樹莓派上,當我在樹莓派上構建和運行它時出現錯誤,當我在其他任何地方構建和運行它時,它不會出現。
Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: S. Path '', line 0, position 0.
這是我在運行項目時遇到的錯誤(機器人的令牌數據存儲在 json 文件中)當我在我的 PC 上從 visual studio 運行項目時,它們是完全正常讀取的,但是當我在 PI 上構建項目時並運行它我得到這個錯誤。
我在這個錯誤上找到了一個 stackoverflow 頁面,但似乎沒有一個解決方案能解決我的問題。
我通過驗證網站運行我的 json 數據,它檢查出來了
我看到一篇帖子說它可能是一個 UTF 編碼問題,所以我嘗試了一個修復方法,我傳遞了 UTF-8 編碼的文本,並且出現了同樣的錯誤。 然后我嘗試使用 UTF-32,這使得錯誤出現在我的 PC 和 PI 上!
我有一種感覺,它與它的編碼有關,但我真的被困在這里,我再也找不到討論這個問題的論壇了。 任何指針或想法表示贊賞!
這是拋出錯誤的代碼, JsonFromPath
從文件返回原始數據 json, DataFromJson
是反序列化它的,這就是拋出錯誤的地方。
public string JsonFromPath(string path)
{
try
{
string result;
using (var reader = new StreamReader(path))
{
result = reader.ReadToEnd();
}
return result;
}
catch(Exception ex) { return ex.ToString(); }
}
public T DataFromJson(string json)
{
return JsonConvert.DeserializeObject<T>(json);
}
public T DataFromPath(string path)
{
try
{
string rawJson;
using (var reader = new StreamReader(path))
{
rawJson = reader.ReadToEnd();
}
return JsonConvert.DeserializeObject<T>(rawJson);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
return default(T);
}
}
我將代碼更改為這個並且由於某種原因它現在可以工作了
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.