{
"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。 有什么想法如何格式化?
QJsonDocument
toJson
功能采取格式,使您可以指定组合或缩进格式。用来让您的json在一个名为
QJsonObject
:中的json
jsonObj
或来自A
QJsonDocument doc(jsonObj);
QString jsonString = doc.toJson(QJsonDocument::Indented);
:
QString
如果您使用QT 4,则可以使用QJSONLIB.
在这种情况下,用法将如下:
QJsonDocument doc = QJsonDocument::fromJson(jsonString.toUtf8());
QString formattedJsonString = doc.toJson(QJsonDocument::Indented);
示例JSON对象:
QJson::Parser parser;
bool ok;
QVariantMap result = parser.parse (responseData, &ok).toMap();
if (!ok) {
qFatal("An error occurred during parsing");
exit (1);
}
QJsonObject json;
json["name"] = "Hakan";
json["age"] = 25;
json["address"] = QJsonObject{{"street", "Sarıyer"}, {"city", "İstanbul"}};
printJson(json);
输出:
void printJson(QJsonObject json){
QJsonDocument doc(json);
QString jsonString = doc.toJson(QJsonDocument::Indented);
qDebug() << jsonString.toStdString().c_str();
}