我想创建一个QJsonDocument
,但我找不到在文档中推送数据的方法。在JsonBuilder::CreateContact
结束时,我的文件似乎是空的。 X)可以提供一些帮助。
我尝试使用某些指针并将其添加到我的文档中,因为我正在考虑销毁我的不同对象(contactObj
,detailObj
,addressObj
,{ {1}})但是使用这种方法,我无法构建date
类型(无法访问QJsonValue
成员private
),所以我错了吗?
JsonBuilder.h
QjsonValue::QJsonValue
JsonBuilder.cpp
#ifndef JSONBUILDER_H
#define JSONBUILDER_H
#include <QObject>
#include <QJsonDocument>
#include <QMap>
#include <QString>
#include <QList>
class JsonBuilder: public QObject
{
Q_OBJECT
private:
QJsonDocument* document;
public:
JsonBuilder();
~JsonBuilder();
void CreateContact(QMap<QString,QList<QString>> map);
void CreateMessage(QMap<QString,QString> map);
QJsonDocument* getDocument(){ return document; }
};
#endif // JSONBUILDER_H
答案 0 :(得分:0)
注意(在文档中)array()方法的签名:
QJsonArray QJsonDocument::array() const
当你以这种方式使用它时:
document->array().append(contactObj);
您将对象附加到doc数组的临时副本。
你最好创建一个数组,追加你的对象,然后用这种方式将数组设置为文档:
QJsonArray array;
array.append(contactObj);
//append every else object you need
document->setArray(array);
而不是
if(document->isArray()){
document->array().append(contactObj);
}
else {
qDebug()<<"JsonDocument not ready for insert";
}