Qt模块化笔记之core——使用QJsonDocument输出JSON数据

上一节讲的都是如何将已有json文档中的数据取出利用。本节利用QJsonDocument,将其它类型的数据转化成json文档输出。

————————————

利用QJsonDocument的静态成员函数:

QJsonDocument	fromVariant(const QVariant & variant)
及公有函数:

QByteArray	toJson(JsonFormat format = Indented) const

————————————
JsonFormat枚举值解释如下:

Constant Value Description
QJsonDocument::Indented(锯齿状的)默认 0 转成易读型
{
    "Array": [
        true,
        999,
        "string"
    ],
    "Key": "Value",
    "null": null
}

QJsonDocument::Compact(紧凑的) 1 紧凑的样子……
{"Array": [true,999,"string"],"Key": "Value","null": null}
————————————
对于fromVariant()函数,参数的构造比较复杂;

————————————
以下是我试验成功例子:
Qt代码:
#include "dialog.h"
#include "ui_dialog.h"
#include <QJsonDocument>
#include <QDebug>
Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);
    //基本使用
    QMap<QString, QVariant> m_map;

    QMap<QString, QVariant> map1;
    QMap<QString, QVariant> map2;

    map1.insert("姓名","张三");
    map1.insert("性别","男");
    map1.insert("年龄","25");

    map2.insert("姓名","小丽");
    map2.insert("性别","女");
    map2.insert("年龄","18");

    m_map.insert("0",map1);
    m_map.insert("1",map2);

    QJsonDocument doc=QJsonDocument::fromVariant(QVariant(m_map));
    QByteArray a=doc.toJson();
    qDebug()<<a;

}

Dialog::~Dialog()
{
    delete ui;
}
输出:
"{
    "0": {
        "姓名": "张三",
        "年龄": "25",
        "性别": "男"
    },
    "1": {
        "姓名": "小丽",
        "年龄": "18",
        "性别": "女"
    }
}
" 





郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。