c# - 解析值时遇到意外字符

目前,我有一些问题。我在 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 的类型是包含文件路径的 stringJsonConvert.DeserializeObject 采用 JSON 值,而不是文件路径 - 因此尝试转换类似 @"c:\temp\fooo" 的内容失败 - 这显然不是 JSON。

https://stackoverflow.com/questions/23259173/

相关文章:

javascript - 以 JSON 格式发布数据

json - 如何使用 curl 将 json 对象与数组一起放置

json - 部分 JSON 在 Go 中解码为 map

sql - 查询 JSON 类型内的数组元素

json - react-native 如何从本地JSON文件中获取数据?

json - 如何使用 jq 从 JSON 中获取键名

json - 将 JSON 传递给 HTTP POST 请求

jquery - 为什么找不到我的 json 文件?

javascript - ES6 模块实现,如何加载 json 文件

c# - DataContractJsonSerializer 和 JavaScriptSerial