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

使用JsonCpp读取JSON文件运行时报第1行第1列语法错误如何解决

JsonCpp解析报错排查解决步骤
  • 第一步:添加文件打开状态校验
    你现有代码未判断文件是否成功打开,若程序运行的工作目录下不存在items.json,读取空输入流就会触发首行首列的语法报错。请在打开文件后新增校验逻辑:
    ifstream file("items.json");
    // 新增以下校验代码
    if (!file.is_open()) {
        cout << "items.json文件打开失败,请确认文件放在程序运行工作目录下" << endl;
        exit(1);
    }
    
  • 第二步:移除JSON文件的UTF-8 BOM头
    Windows下用记事本、部分默认带BOM配置的编辑器保存JSON文件时,会在文件开头隐藏写入3字节的BOM标记,JsonCpp解析器无法识别该标记,就会抛出首行首列语法错误。
    解决方法:使用VS Code、Notepad++等编辑器打开items.json,将编码格式修改为 UTF-8 无BOM 后重新保存即可。
  • 第三步:校验文件内容合法性
    确认JSON文件开头没有多余的不可见字符(如全角空格、冗余换行、制表符等),你提供的JSON内容本身语法合法,确保实际文件内容和示例一致即可。
  • 可选调试方案
    若完成以上步骤仍报错,可以先将文件内容读取为字符串打印,确认读取到的内容符合预期,再传入解析器:
    // 读取文件内容到字符串
    string content((istreambuf_iterator<char>(file)), istreambuf_iterator<char>());
    cout << "读取到的文件内容:\n" << content << endl;
    // 解析字符串而非直接传文件流
    if (!reader.parse(content, newValue)) {
        cout << reader.getFormattedErrorMessages();
        exit(1);
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:36:01