QT5中如何将数据转换为JSON格式

1.简单JSON数据

(1)首先加上有关JSON的头文件

#include 
#include 
#include 
#include 
#include 

(2)在.h文件中加上全局变量的结构体

struct Today
{
    QString date;
};

//顺便给结构体给一个变量
Today today;

(3)在构造函数中初始化

today.date = "20190911";

(4)然后就可以将数据在textedit控件中显示出来

    QJsonObject json;//构建json对象json
    json.insert("date", today.date);
    
    QJsonDocument document;
    document.setObject(json);
    QByteArray byte_array = document.toJson(QJsonDocument::Compact);
    QString json_str(byte_array);
    ui->textEdit->setText(json_str);

(5)运行效果

{"date":"20190911"}

2.较复杂的JSON数据

(1)实现代码

    QJsonObject dataobj;//构建json对象dataobj
    dataobj.insert("shidu","95%");
    dataobj.insert("wendu","8");

    QJsonObject json;//构建json对象json
    json.insert("data", dataobj);//将dataobj中的数据插入到json对象中
    json.insert("date", today.date);

    QJsonDocument document;
    document.setObject(json);
    QByteArray byte_array = document.toJson(QJsonDocument::Compact);
    QString json_str(byte_array);
    ui->textEdit->setText(json_str);

(2)运行效果

QT5中如何将数据转换为JSON格式_第1张图片

3.复杂JSON数据

(1)代码
.h文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include 

namespace Ui {
class MainWindow;
}

struct Today
{
    QString date;
    QString city;
    QString wendu;
    QString fx;
    QString fl;
};

struct Forecast
{
    QString date;
    QString wendu1;
    QString rain;
    QString cloud;
    QString type;
};
class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
protected:
    void DataToJson();
private:
    Ui::MainWindow *ui;
    Today today;
    Forecast forecast[3];
};

#endif // MAINWINDOW_H

.cpp文件

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include 
#include 
#include 
#include 
#include 
#include 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    // 结构体初始化
    today.date = "20190911";
    today.city = "CH";
    today.wendu = "29";
    today.fl = "22";
    today.fx = "33";
    for (int i = 0; i < 3; i++)
    {
        forecast[i].date = "00日星期0";
        forecast[i].wendu1 = "高温 0.0℃";
        forecast[i].rain = " 0mm";
        forecast[i].cloud = " 0%";
        forecast[i].type = "undefined";
    }
    DataToJson();

}

MainWindow::~MainWindow()
{
    delete ui;
}
void MainWindow::DataToJson()
{
/////////////////获取数据//////////////////////
    QListforlist1;
    forlist1<<"11日星期一"<<"12日星期二"<<"13日星期三";
    for(int i=0;iforlist2;
    forlist2<<"10%"<<"5%"<<"2%";
    for(int i=0;iforlist3;
    forlist3<<"2mm"<<"3mm"<<"4mm";
    for(int i=0;itextEdit->setText(json_str);
}

(2)运行效果

QT5中如何将数据转换为JSON格式_第2张图片

 

参考文档:
https://blog.csdn.net/wzz953200463/article/details/100135212
https://blog.csdn.net/u011720560/article/details/77603171
http://www.mycode.net.cn/language/cpp/576.html
https://blog.csdn.net/qq_30725967/article/details/98205514

你可能感兴趣的:(QT)