Qt数组写入JSON文件不换行

在使用Qt 5.12版本进行开发过程中,需要将数据写入json文件,用的是QJsonObject和相关类;
我需要写入一个数组,用下面代码举例:

QJsonArray array = {5,88};
QJsonObject jsonObject;
jsonObject.insert("name", "tom");
jsonObject.insert("age", array);

运行之后倒是成功写入了JSON文件,不过不是我想要的格式,其格式如下:
{
"age": [
5,
88
],
"name": "tom",
}
上述JSON程序在我程序中运行报错,但如果我手动稍微调整一下格式为:
{
"age": [5,88],
"name": "tom",
}
程序就可以运行。由于这只是程序中的一小部分,其余不好修改,如果只考虑修改这部分代码,如何做到在写入的时候将JSON格式变为我需要的格式呢?

可以尝试使用QJsonDocument的toJson函数自定义格式化写入:

QJsonArray array = {5,88};
QJsonObject jsonObject;
jsonObject.insert("name", "tom");
jsonObject.insert("age", array);
QJsonDocument doc(jsonObject);
QByteArray data = doc.toJson(QJsonDocument::Indented);

将data写入文件即可。

你是用 QJsonDocument 来写入文件的吗,如果是的话应该没办法,因为只有Indented和Compact两种值,也没办法设置其他格式。

就用Compact模式呗,全都不换行

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^