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

C++解析文本文件数据至变量的最简方法及示例

最简C++(Qt)解析JSON文件方案

嘿,既然你提到了用QString存储变量,那直接用Qt自带的JSON解析模块就最省事了——不用额外引入第三方库,代码也够简洁。下面是完整的示例代码:

#include <QCoreApplication>
#include <QFile>
#include <QJsonDocument>
#include <QJsonObject>
#include <QString>
#include <iostream>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    // 1. 读取目标文件内容
    QFile file("parse_data.txt");
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
        std::cerr << "无法打开parse_data.txt文件" << std::endl;
        return 1;
    }
    QByteArray jsonData = file.readAll();
    file.close();

    // 2. 解析JSON格式数据
    QJsonParseError parseError;
    QJsonDocument doc = QJsonDocument::fromJson(jsonData, &parseError);
    if (parseError.error != QJsonParseError::NoError) {
        std::cerr << "JSON解析出错: " << parseError.errorString().toStdString() << std::endl;
        return 1;
    }

    // 3. 提取字段到对应QString变量
    QJsonObject obj = doc.object();
    QString song = obj["song"].toString();
    QString artist = obj["artist"].toString();
    QString album = obj["Album"].toString(); // 注意原JSON键名是大写A开头
    QString service = obj["Service"].toString();

    // 可选:打印验证结果
    std::cout << "歌曲名: " << song.toStdString() << std::endl;
    std::cout << "歌手: " << artist.toStdString() << std::endl;
    std::cout << "专辑: " << album.toStdString() << std::endl;
    std::cout << "平台: " << service.toStdString() << std::endl;

    return a.exec();
}

小提示:

  • 确保你的Qt项目配置正确,在.pro文件里加上QT += core来链接核心模块
  • 提取字段时要严格匹配JSON里的键名(比如Album和Service的大写开头别写错)
  • 如果不需要Qt的事件循环,也可以删掉QCoreApplication相关代码,直接处理文件和解析逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 08:12:42