上一节讲的都是如何将已有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", "性别": "女" } } "