Guest User

Untitled

a guest
Sep 23rd, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. QString printJSON(const QJsonValue& jsonValue, int maxLength, int indentLevel) {
  2. static const QString indent{QStringLiteral(" ")};
  3. static const QString cn{QStringLiteral(",\n")};
  4. QString whiteSpace(indent.repeated(indentLevel));
  5.  
  6. switch(jsonValue.type()) {
  7. case QJsonValue::Object:
  8. {
  9. QStringList values;
  10. QJsonObject o = jsonValue.toObject();
  11. for(const QString& key : o.keys()) {
  12. values.append(QStringLiteral("%1 \"%2\":%3").arg(whiteSpace, key, printJSON(o.value(key), maxLength, indentLevel + 1)));
  13. }
  14. return QStringLiteral("{\n%1\n%2}").arg(values.join(cn), whiteSpace);
  15. }
  16.  
  17. case QJsonValue::Array:
  18. {
  19. QStringList values;
  20. for(const QJsonValue& v : jsonValue.toArray()) {
  21. values.append(whiteSpace + indent + printJSON(v, maxLength, indentLevel + 1));
  22. }
  23. return QStringLiteral("[\n%1\n%2]").arg(values.join(cn), whiteSpace);
  24. }
  25.  
  26. case QJsonValue::String:
  27. {
  28. QString s = jsonValue.toVariant().toString();
  29. return (s.length() > maxLength) ? QStringLiteral("\"(%1 chars)\"").arg(s.length()) : QStringLiteral("\"%1\"").arg(s);
  30. }
  31.  
  32. case QJsonValue::Double:
  33. case QJsonValue::Bool:
  34. return jsonValue.toVariant().toString();
  35. case QJsonValue::Null:
  36. case QJsonValue::Undefined:
  37. return QStringLiteral("null");
  38. }
  39. return QString();
  40. }
Add Comment
Please, Sign In to add comment