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

And*_*huk 2 formatting qt json 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"
]
}
Run Code Online (Sandbox Code Playgroud)

在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);
Run Code Online (Sandbox Code Playgroud)

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

The*_*ght 7

QJsonDocumenttoJson函数采用了一种格式,使您可以指定紧凑格式或缩进格式

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

QJsonDocument doc(jsonObj);
QString jsonString = doc.toJson(QJsonDocument::Indented);
Run Code Online (Sandbox Code Playgroud)

或者,从QString:-

QJsonDocument doc = QJsonDocument::fromJson(jsonString.toUtf8());
QString formattedJsonString = doc.toJson(QJsonDocument::Indented);
Run Code Online (Sandbox Code Playgroud)