Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- QString printJSON(const QJsonValue& jsonValue, int maxLength, int indentLevel) {
- static const QString indent{QStringLiteral(" ")};
- static const QString cn{QStringLiteral(",\n")};
- QString whiteSpace(indent.repeated(indentLevel));
- switch(jsonValue.type()) {
- case QJsonValue::Object:
- {
- QStringList values;
- QJsonObject o = jsonValue.toObject();
- for(const QString& key : o.keys()) {
- values.append(QStringLiteral("%1 \"%2\":%3").arg(whiteSpace, key, printJSON(o.value(key), maxLength, indentLevel + 1)));
- }
- return QStringLiteral("{\n%1\n%2}").arg(values.join(cn), whiteSpace);
- }
- case QJsonValue::Array:
- {
- QStringList values;
- for(const QJsonValue& v : jsonValue.toArray()) {
- values.append(whiteSpace + indent + printJSON(v, maxLength, indentLevel + 1));
- }
- return QStringLiteral("[\n%1\n%2]").arg(values.join(cn), whiteSpace);
- }
- case QJsonValue::String:
- {
- QString s = jsonValue.toVariant().toString();
- return (s.length() > maxLength) ? QStringLiteral("\"(%1 chars)\"").arg(s.length()) : QStringLiteral("\"%1\"").arg(s);
- }
- case QJsonValue::Double:
- case QJsonValue::Bool:
- return jsonValue.toVariant().toString();
- case QJsonValue::Null:
- case QJsonValue::Undefined:
- return QStringLiteral("null");
- }
- return QString();
- }
Add Comment
Please, Sign In to add comment