QT json序列化 - QJsonDocument

使用QJsonDocument 类来序列化,不借助QJson的第三方库:

            QVariantList varList;
            for(int i=0; i< commSht.count(); i++)
            {
                CommentInfo *comminfo = commSheet.getAt(i);
                QVariantMap var;
                var.insert("Name", comminfo->m_name);
                var.insert("Date", comminfo->m_date);
                var.insert("Message", comminfo->m_msg);
                varList << var;
            }

            QJsonArray jsonArray = QJsonArray::fromVariantList(varList);
            QJsonDocument jsonDoc(jsonArray);

            QByteArray json = jsonDoc.toJson();


生成的Json 字节串:

  [
     {
        "Date": 1497493199,
        "Message": "Commentcomment",
        "Name": "Administrator"
     },
     {
        "Date": 1497493204,
        "Message": "Comment22",
        "Name": "Administrator"
     }
  ]


另外   -----------------------------------------------我是分割线-------------------------------------------------------------

QJsonDocument 也可以用一个QJsonObject 来创建。这时候json最外层就不是一个JsonArray 数组了。

    void setObject(const QJsonObject &object);
    void setArray(const QJsonArray &array);

QJsonObject 通过下面两个函数生成:

    static QJsonObject QJsonObject::fromVariantMap(const QVariantMap &map);
    static QJsonObject QJsonObject::fromVariantHash(const QVariantHash &map);

QJsonObject 也可以自己设置键值对

iterator insert(const QString &key, const QJsonValue &value);

QJsonArray 通过下面两个函数生成:
    static QJsonArray QJsonArray::fromStringList(const QStringList &list);
    static QJsonArray QJsonArray::fromVariantList(const QVariantList &list);



你可能感兴趣的:(Qt)