json - 如何在 QT 中将 JSON 字符串格式化为可读输出

标签 json qt formatting string-formatting

我有一个 JSON 字符串

{
"FirstName": "John",
"LastName": "Doe",
"Age": 43,
"Address": {
    "Street": "Downing Street 10",
    "City": "London",
    "Country": "Great Britain"
},
"Phone numbers": [
    "+44 1234567",
    "+44 2345678"
]
}

在 QString 变量中。
我发现(在 Stackoverflow 的某处)一种格式化 XML 的方法:
QString responseData = "";
responseData = networkResponse->readAll();

QString formattedXMLResponse;
QDomDocument input;
input.setContent(responseData);
QDomDocument output(input);
QTextStream stream(&formattedXMLResponse);
output.save(stream, 2);

ui->outputTB->setPlainText(formattedXMLResponse);

但此代码仅适用于 XML。
有什么想法可以格式化 JSON 吗?

最佳答案

QJsonDocument采用格式为其 toJson函数,允许您指定 compact or indented format .

假设您在名为 jsonObj 的 QJsonObject 中有您的 JSON:-

QJsonDocument doc(jsonObj);
QString jsonString = doc.toJson(QJsonDocument::Indented);

或者,从 QString:-
QJsonDocument doc = QJsonDocument::fromJson(jsonString.toUtf8());
QString formattedJsonString = doc.toJson(QJsonDocument::Indented);

关于json - 如何在 QT 中将 JSON 字符串格式化为可读输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25977752/

相关文章:

iOS Mantle Overcoat 映射实体 ID 数组

php - 如何在多维 JSON 数组中显示值

qt - 使用 Qt 自定义样式

c++ - Qt5中如何将二进制数据写入stdout

javascript - 根据区域设置显示日期和月份,不显示年份

java - 从 php JSON 对象创建 JSON 数组时出现问题

javascript - 根据 Javascript 中的列表从 Json 中提取字段

python - 撤消 setFlags ItemIsUserCheckable

javascript - 对输出格式使用相同的解析格式

Vim Formatprg PAR 用日期戳来证明注释的合理性