json - 从时间戳制作 QJsonObject 的密钥
问题描述
我的代码的目的是将日志写入带有纪元时间戳的 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'
我该如何解决?
解决方案
看起来像这条线
QJsonObject jsonObj[strTimestamp] = jsonLog;
表示您正在创建一个QJsonObject
.
尝试创建实例QJsonObject
然后分配属性strTimestamp
QJsonObject jsonObj;
jsonObj[strTimestamp] = jsonLog;
推荐阅读
- python - 摩根指纹rdkit
- visual-studio - 在 Visual Studio 中更新 Nuget 包后构建定义未构建
- javascript - 如何从数组中提取对象?
- javascript - JavaScript 表格在加载/刷新时闪烁。想知道我怎样才能避免这种情况发生?
- r - 如何在r中的nnfor包中获得mlp层神经元的权重?
- ruby-on-rails - 为什么 Heroku 上的 secret_key_base 为空白(Rails 5.2)
- linux - 使用脚本外壳获取文件中每行的最后两个字母
- notepad++ - 在记事本++中用正则表达式替换左侧文本
- .net-core - 是否有任何分析 api 可用于以 clr 版本托管的应用程序,因为 IIS 中没有托管代码
- kubernetes - 如何将运行状况检查放入部署清单中?