我的代码的目标是以json格式编写日志,并具有划时代的时间戳。
我希望我的代码按下面的方式编写日志。
{234231412:{"user":"alex", "device":"HD-3432", "action":"connectin to server}}这是我的代码,它无法构建。
void writeLog(const QJsonObject &jsonLog) {
qint64 timestamp = QDateTime::currentSecsSinceEpoch();
QString strTimestamp = QString::number(timestamp);
QJsonObject jsonObj[strTimestamp] = jsonLog;
QJsonDocument log(jsonObj);
static QFile f(FireRest::logFile);
if (!f.isOpen()) {
f.open(QIODevice::WriteOnly | QIODevice::Append);
}
static QTextStream ts(&f);
QString t;
t.sprintf("%s\n", log.toString());
ts << t << endl;
QString fpo(logFile + QString(".old"));
if (f.size() > MAX_LOG_FILE_SIZE) {
f.close();
QFile::remove(fpo);
QFile::rename(logFile, fpo);
}
}QJsonObject jsonObj[strTimestamp] = jsonLog;使数组的大小具有非整数类型'QString‘。
QJsonDocument log(jsonObj);使变量具有不完全类型'QJsonDocument‘
我怎么才能修好呢?
发布于 2019-04-04 08:18:02
看起来像这条线
QJsonObject jsonObj[strTimestamp] = jsonLog;意味着您正在创建一个QJsonObject数组。
尝试创建QJsonObject实例,然后分配属性strTimestamp
QJsonObject jsonObj;
jsonObj[strTimestamp] = jsonLog;https://stackoverflow.com/questions/55510655
复制相似问题