使用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


输出:

相关推荐
zjxtxdy1 小时前
C++面向对象程序开发-类与对象
开发语言·c++
東隅已逝,桑榆非晚2 小时前
算法6. 双指针法-查找总价格为目标的两个商品
c++·学习·算法
qq_406981033 小时前
c++拷贝构造函数
开发语言·c++
H.莓飛5 小时前
【C++】【STL】vector_OJ题
linux·服务器·开发语言·数据结构·c++·visual studio
Rabitebla5 小时前
【Linux操作系统】进程篇(十一):进程程序替换——从底层原理到 exec 函数族
linux·服务器·c++·笔记·学习·算法
沫璃染墨6 小时前
从零入门计算机网络系列(十五):TCP可靠传输机制详解——从序号与确认应答到乱序处理
服务器·网络·c++·tcp/ip·tcp
青少儿编程课堂6 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:Bellman-Ford与SPFA含负权最短路及负环检测全解析
c++·python·算法·bfs·信息学竞赛
Hello_Pyhx6 小时前
NWinfo 导出 Windows 硬件信息:从 JSON 报告到缺项排查
windows·json
旖旎夜光6 小时前
【C++ 基础入门】类和对象(下):初始化列表、static 成员、友元与内部类
c++·笔记·学习
j7~7 小时前
【C++ 八股文】(篇四)C++11 新特性
开发语言·c++·面试·c++11·八股文