目前,我有一些问题。我在 Json.NET 中使用 C#。问题是我总是得到:
{"Unexpected character encountered while parsing value: e. Path '', line 0, position 0."}
所以我使用 Json.NET 的方式如下。我有一个应该保存的类。该类如下所示:
public class stats
{
public string time { get; set; }
public string value { get; set; }
}
public class ViewerStatsFormat
{
public List<stats> viewerstats { get; set; }
public String version { get; set; }
public ViewerStatsFormat(bool chk)
{
this.viewerstats = new List<stats>();
}
}
这个类的一个对象将被填充和保存:
File.WriteAllText(tmpfile, JsonConvert.SerializeObject(current), Encoding.UTF8);
保存部分工作正常,文件存在并已填充。之后,该文件将被读回类中:
try
{
ViewerStatsFormat current = JsonConvert.DeserializeObject<ViewerStatsFormat>(tmpfile);
//otherstuff
}
catch(Exception ex)
{
//error loging stuff
}
现在在 current= 行出现了异常:
{"Unexpected character encountered while parsing value: e. Path '', line 0, position 0."}
我不知道为什么会这样。 JSON 文件如下 -> Click me I am the JSON link
有人有什么想法吗?
最佳答案
您可能没有将 JSON 传递给 DeserializeObject
。
从 File.WriteAllText(tmpfile,...
看来,tmpfile
的类型是包含文件路径的 string
。 JsonConvert.DeserializeObject
采用 JSON 值,而不是文件路径 - 因此尝试转换类似 @"c:\temp\fooo"
的内容失败 - 这显然不是 JSON。
关于c# - 解析值时遇到意外字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23259173/