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",
        "性别": "女"
    }
}
" 





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

上一篇:Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules


下一篇:js定义数组