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

标签 c# json visual-studio-2013 json.net

目前,我有一些问题。我在 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。

关于c# - 解析值时遇到意外字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23259173/

相关文章:

c# - 如何在 2 个用户之间创建唯一 ID?

MSBuild 从命令行发布 Web 项目执行包而不是文件系统

c# - 如何使用 wix 自定义操作停止 .MSI 安装

C# 覆盖 Collection<T> 中的方法

c# - 将业务逻辑(c#)传递给事务处理(sql)会提高性能吗?

arrays - Elasticsearch Kibana中的映射数组(文本,数据)

c# - 获取对象的名称而不获取其位类型

java - 使用json数据在表单中一起输入多个数据

json - 解析JSON返回nil

visual-studio-2013 - WinRT App 的软件包系列安装了多个软件包。