使用Qt实现json数据的格式检测并序列化输出 Qt5.4.0环境

问题:

使用 Qt 实现 JSON 数据的格式检测,并输出各个键值


代码:

widget.h

cpp 复制代码
#include <QWidget>
#include <QJsonDocument> /*序列化 反序列化(F1查看帮助文档)*/
#include <QJsonObject> /*利用对象代表了一段json数据*/
#include <QJsonArray> /*相当于QJsonObject的子节点*/
#include <QJsonValue>
#include <QDebug>

widget.c

cpp 复制代码
void Widget::on_pushButton_clicked()
{
    QString json_string = ui->textEdit->toPlainText(); /*获取输入的字符串*/
    QJsonDocument doc = QJsonDocument::fromJson(json_string.toUtf8());
    if(doc.isObject()){
        //true
        ui->label->setText("正确的json格式");
        ui->label->setStyleSheet("background-color : rgb(153, 153, 153);\
                                                    color : rgb(50,255,50);");
    }
    else{
        // false
        ui->label->setText("错误的json格式");
        ui->label->setStyleSheet("background-color : rgb(153, 153, 153);\
                                                    color : rgb(255,50,50);");
        return;
    }
    QJsonObject json = doc.object();
    /*无论是序列化还是反序列化都是利用QJsonObject的[ ]运算符重载方法来实现*/
    QJsonValue name = json["name"];
    qDebug()<<name;

    /*从本质上来讲,QJsonObject就是一个存储QJsonValue数据的容器*/
    for(QJsonValue v : json){/*遍历容器(需在pro文件中添加C++11语法)*/
        qDebug()<<v; /*输出*/
    }
}

widget.ui


输出:

相关推荐
-许平安-37 分钟前
MCP项目笔记六(PluginsLoader)
c++·笔记·raii·plugin system
呜喵王阿尔萨斯40 分钟前
argc & argv
c语言·c++
Vect__1 小时前
std::bind和lambda的使用
c++
她叫我大水龙1 小时前
MSYS2的C/C++,python2,python3编译环境安装脚本
c语言·c++
宵时待雨2 小时前
C++笔记归纳17:哈希
数据结构·c++·笔记·算法·哈希算法
charlie1145141912 小时前
嵌入式C++教程实战之Linux下的单片机编程:从零搭建 STM32 开发工具链(2) —— HAL 库获取、启动文件坑位与目录搭建
linux·开发语言·c++·stm32·单片机·学习·嵌入式
我在人间贩卖青春2 小时前
Qt 项目发布
qt·项目发布
问好眼2 小时前
《算法竞赛进阶指南》0x05 排序-1.电影
c++·算法·排序·信息学奥赛
CoderCodingNo2 小时前
【GESP】C++八级考试大纲知识点梳理 (6) 图论算法:最小生成树与最短路
c++·算法·图论
.YM.Z3 小时前
C++入门——缺省参数,函数重载,引用,inline函数,nullptr的介绍和使用
开发语言·c++