首页 > 其他分享 >QT 读取Json 配置文件

QT 读取Json 配置文件

时间:2024-07-01 14:20:45浏览次数:17  
标签:Obj QT 配置文件 Json ConfigPath ConfigFile result root QString

{
    QString ProjectPath = "";
    QString ConfigPath = ".json";
    const char* PathEnvVar = getenv("");
    if (PathEnvVar != nullptr) {
        ProjectPath = PathEnvVar;
        ConfigPath = ProjectPath + "/.json";
    }
    if (!QFile::exists(ConfigPath)) {
        qCritical()<< __func__ << " NOT EXIST!";
    }
    QFile ConfigFile(ConfigPath);

    QString jsonContent;

    // Open ConfigFile File
    if (ConfigFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
        // Read JSON Content
        jsonContent = ConfigFile.readAll();
        // Close ConfigFile File
        ConfigFile.close();
    } else {
        qCritical()<< __func__ << " ConfigFile Not Open";
    }

    QJsonParseError err_rpt;
    QJsonDocument  root_Doc = QJsonDocument::fromJson(jsonContent.toUtf8(), &err_rpt);
    if(err_rpt.error != QJsonParseError::NoError)
    {
        qDebug() <<__func__<< "JSON error";
    }
    else
    {
        QJsonObject root_Obj = root_Doc.object();
        QJsonValue result_Value = root_Obj.value("results");
        if(result_Value.isArray())
        {
            QJsonObject result_Obj = result_Value.toArray().at(0).toObject();
            for(QJsonObject::iterator it = result_Obj.begin(); it != result_Obj.end(); it++)
            {
                if(it.key() == "" || it.key() == "")
                {
                    continue;
                }
                else{
                    QJsonObject warningKey = result_Obj.value(it.key()).toObject();
                    int Id = warningKey.value("id").toString().toInt(nullptr,16);
                    QString Title = warningKey.value("title").toString();
                }
            }
            qDebug() << " " ;
        }
    }
}

标签:Obj,QT,配置文件,Json,ConfigPath,ConfigFile,result,root,QString
From: https://www.cnblogs.com/lllion/p/18277913

相关文章

  • QT 使用Q_PLUGIN_METADATA实现自定义插件
    1.创建一个继承自QObject的类,并在类的实现文件中使用Q_PLUGIN_METADATA宏定义插件的元数据信息。这个宏通常包含插件的元数据,如插件的标识符、版本号等。2.在插件项目的.pro文件中添加QT += core gui widgets以确保能够使用Qt的相关功能。3.在主应用程序中使用QPluginLoade......
  • 使用.Net6中的System.Text.Json遇到几个常见问题及解决方案
    原文链接:https://blog.csdn.net/zls365365/article/details/124162096前言以前.NetCore是不内置JSON库的,所以大家都用Newtonsoft的JSON库,而且也确实挺好用的,不过既然官方出了标准库,那更方便更值得我们多用用,至少不用每次都nuget安装Newtonsoft.Json库了。字符编码问题默认的S......
  • python pyqt5学习记录(一)
    了解pyQt5:PyQt5是一个用于创建图形用户界面(GUI)应用程序的Python库。它是Python编程语言与Qt应用程序框架的绑定,允许开发人员使用Python语言来创建跨平台的桌面应用程序。Qt是一个功能强大且广泛使用的C++库,用于开发图形界面和应用程序功能。关于PyQt5的一些重要信息和功能:1.......
  • swift JSONString和字典互转
     extensionDictionary{publicfunctoJSONString()->String?{guardletdata=try?JSONSerialization.data(withJSONObject:self,options:[])else{returnnil}guardletstring=String(data:data,encoding......
  • Linux和windows网络配置文件的修改
    Linux和windows网络配置文件的修改网络配置文件是计算机网络管理中至关重要的一部分。正确配置网络文件可以确保计算机与网络设备之间的通信顺畅,避免网络故障。本文将详细介绍网络配置文件的修改方法,包括常见命令、使用方法举例,以及一些优化建议。一、网络配置文件概述网......
  • SpringMVC配置文件的位置和命名
    配置web.xml文件时我们需要配置SpringMVC框架的配置文件,该文件有两种配置方式。第一种是默认配置,第二种是带配置参数的配置。1.1默认配置方式SpringMVC框架有它自己的配置文件,该配置文件的名字默认为:-servlet.xml,默认存放的位置是WEB-INF目录下。如果采用这种方式意味着文件的......
  • [QT入门]信号与槽
    一、什么是信号与槽?在Qt框架中,信号与槽(SignalandSlot)机制是其核心特性之一,它提供了一种高效且安全的方式来处理对象之间的通信。信号与槽机制基于观察者模式,允许一个对象(信号发出者)在特定事件发生时通知另一个或多个对象(槽接收者)。二、概念详解1.信号(Signal)信号是Qt对象......
  • 【Redis —— 04 Redis配置文件】
    Redis配置文件(通常为redis.conf)包含多种配置选项,可以调整Redis服务器的行为和性能。以下是Redis配置文件中的常见配置项及其详解:官网:Redisconfiguration|Docs常用配置项1.基本配置bind绑定的IP地址。如果你想让Redis监听多个IP地址,可以用空格分隔多个IP。示例:b......
  • Qt下载安装及配置教程
    文章目录1. QT简介2. 下载QT3.检查配置环境4.创建QT项目1. QT简介Qt是一个跨平台C++图形用户界面(GUI)工具包,它由Qt公司(前身为Trolltech)开发和维护。自1995年发布以来,Qt因其强大的功能和跨平台能力,成为了许多软件开发者的首选工具。无论是在桌面应用程序、移动应用......
  • 使用pyqt5编写一个七彩时钟
    使用pyqt5编写一个七彩时钟效果代码解析定义RainbowClockWindow类初始化用户界面显示时间方法完整代码在这篇博客中,我们将使用PyQt5创建一个简单的七彩数字时钟。效果代码解析定义RainbowClockWindow类classRainbowClockWindow(QMainWindow):def......