qt5使用json格式

来源:互联网 发布:mysql emoji 编辑:程序博客网 时间:2024/05/17 03:30

因为webservice需要使用json数据格式,昨天拼接了字符串测试,今天百度发现qt5有处理json格式的类qjsonobject。

参考:http://doc.qt.io/qt-5/qjsonobject.html

参考:一去二三里的博客:http://blog.sina.com.cn/s/blog_a6fb6cc90101gnxm.html

#include "mainwindow.h"#include "ui_mainwindow.h"#include<QJsonObject>#include<QJsonDocument>#include<QJsonArray>MainWindow::MainWindow(QWidget *parent) :    QMainWindow(parent),    ui(new Ui::MainWindow){    ui->setupUi(this);    QJsonObject json;    json.insert("name", QString("Qt"));    json.insert("version", 5);    json.insert("windows", true);    QJsonDocument document;    document.setObject(json);    QByteArray byte_array = document.toJson(QJsonDocument::Compact);    QString json_str(byte_array);    ui->label->setText(json_str);    QString name("");    QJsonParseError json_error;    QJsonDocument parse_doucment = QJsonDocument::fromJson(byte_array, &json_error);    if(json_error.error == QJsonParseError::NoError)    {        if(parse_doucment.isObject())        {            QJsonObject obj = parse_doucment.object();            if(obj.contains("name"))            {                QJsonValue name_value = obj.take("name");                if(name_value.isString())                {                    name = name_value.toString();                    ui->label_2->setText(name);                 }             }            if(obj.contains("version"))            {                QJsonValue version_value = obj.take("version");                if(version_value.isDouble())                {                    int version = version_value.toVariant().toInt();                }            }            if(obj.contains("windows"))            {                QJsonValue version_value = obj.take("windows");                if(version_value.isBool())                {                    bool flag = version_value.toBool();                }            }         }    }}MainWindow::~MainWindow(){    delete ui;}


0 0