You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Newtonsoft.Json解析JSON时出现Unexpected character报错如何解决?

报错原因
  • 反序列化目标类型指定错误:你调用JsonConvert.DeserializeObject<string>()时指定了目标类型为string,但输入的JSON内容是JSON对象结构(以{开头)。Newtonsoft.Json解析字符串类型时预期JSON内容以双引号"开头,遇到开头的{属于预期外字符,因此抛出异常。
  • 调试器显示的"{ \"employees\": [] }"是工具对字符串的转义展示效果,实际读取到的JSON原始内容就是{ "employees": [] },不存在多余外层引号。
修复方案

根据你的实际使用需求二选一即可:

  1. 若仅需要将JSON内容作为字符串使用,直接删除反序列化代码行,直接使用读取到的jsonStr即可。
  2. 若需要解析JSON的结构化内容,可选择以下两种实现:
    • 强类型解析(推荐):先定义和JSON结构匹配的实体类,再调整反序列化的目标类型
    // 定义匹配JSON结构的实体类,employees对应的泛型类型可替换为你实际的Employee业务类
    public class EmployeeRoot
    {
        public List<object> employees { get; set; }
    }
    
    // 调整反序列化代码
    var json = JsonConvert.DeserializeObject<EmployeeRoot>(jsonStr);
    
    • 动态解析:不需要提前定义实体类,直接用JObject解析
    var json = Newtonsoft.Json.Linq.JObject.Parse(jsonStr);
    // 后续可直接读取属性:var empList = json["employees"];
    

内容的提问来源于stack exchange,提问作者Riz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 04:15:02