我有这个Json文件:
{
"place": {
"id": "99"
},
"camera": {
"id": "99",
"url": "http://192.168.0.250/stuff.php?",
}
}
我得到的是在一行中打印的所有内容,在每个字段后打印字符\ n而不是在文件中打印。这发生在我的Ubuntu机器上,而不是在Debian的另一台机器上。 我想逐行打印文件内容..任何提示? 我使用此代码来打印Json文件的内容:
QString val;
QFile file;
file.setFileName("../config.json");
file.open(QIODevice::ReadOnly | QIODevice::Text);
val = file.readAll();
file.close();
qWarning() << val;
修改的
尝试用户TheDarkKnight提供的两个解决方案没有运气,我也尝试在终端中使用cat
命令并且文件打印正确,所以我怀疑不是操作系统的问题,但Qt涉及.. < / p>
答案 0 :(得分:1)
似乎qWarning()
函数转义了不可打印的字符并在最后添加了新行字符,因此解决方案是使用:
qWarning().noquote()
https://stackoverflow.com/a/39561345/4267439
然而,这发生在Qt 5.4中,这改变了qWarning行为,所以我的最终解决方案是这个预处理器指令:
#if (QT_VERSION > QT_VERSION_CHECK(5, 4, 0))
qWarning().noquote() << val;
#else
qWarning() << val;
#endif
答案 1 :(得分:0)
使用QJsonDocument格式化数据并从那里导出
//Assuming data is in QString val
QJsonDocument doc = QJsonDocument::fromJson(val.toUtf8());
QString formatted = doc.toJson(QJsonDocument::Indented);
qDebug() << formatted;