7 #include <QJsonDocument>
26 value =
static_cast<qlonglong
>(json.
toDouble());
32 value =
static_cast<qulonglong
>(json.
toDouble());
38 value =
static_cast<uint
>(json.
toInt());
44 value =
static_cast<qint16
>(json.
toInt());
62 for (
auto &&element : json.
toArray()) { value << element.toString(); }
100 value = json.
toInt();
104 QJsonValueRef
operator>>(QJsonValueRef json, qlonglong &value)
106 value =
static_cast<qlonglong
>(json.toDouble());
110 QJsonValueRef
operator>>(QJsonValueRef json, qulonglong &value)
112 value =
static_cast<qulonglong
>(json.toDouble());
118 value =
static_cast<uint
>(json.toInt());
124 value =
static_cast<qint16
>(json.toInt());
130 value = json.toString();
134 QJsonValueRef
operator>>(QJsonValueRef json, std::string &value)
142 for (
auto &&element : json.toArray()) { value << element.toString(); }
166 const QString hex(json.toString());
173 const QString hex(json.toString());
321 json.
insert(value.first, pm);
327 QString pm(value.second.toHex());
328 json.
insert(value.first, pm);
346 json[value.first] =
QJsonValue(
static_cast<int>(value.second));
358 json[value.first] =
QJsonValue(
static_cast<int>(value.second));
394 json[value.first] =
QJsonValue(value.second.toString());
401 json[value.first] = pm;
407 json[value.first] =
QString(value.second.toHex());
411 namespace swift::misc::json
421 return acceptCacheFormat ? json::unwrapCache(jsonDoc.
object()) : jsonDoc.
object();
435 return jsonDoc.
array();
440 if (toBeAppended.
isEmpty())
return target;
449 for (
const auto &key : previousObject.
keys())
456 incrementalObject.
remove(key);
458 incrementalObject.
insert(key, child);
462 if (currentObject.
value(key) == previousObject.
value(key)) incrementalObject.
remove(key);
465 return incrementalObject;
471 for (
const auto &key : incrementalObject.
keys())
477 auto child = applyIncrementalObject(currentObject.
value(key).
toObject(),
479 currentObject.
insert(key, child);
482 return currentObject;
485 bool looksLikeJson(
const QString &json)
487 if (json.
isEmpty()) {
return false; }
492 bool looksLikeSwiftJson(
const QString &json)
495 return looksLikeJson(json);
498 bool looksLikeSwiftDataObjectJson(
const QJsonObject &
object)
503 if (
object.size() != 1) {
return false; }
505 if (keys.
size() != 1) {
return false; }
514 if (obj.
isEmpty()) {
return obj; }
515 return swiftDataObjectValue(obj);
523 if (
object.size() != 1) {
return object; }
540 if (
object.size() != 1) {
return object; }
555 if (obj.
isEmpty()) {
return obj; }
556 return unwrapCache(obj);
559 bool looksLikeSwiftContainerJson(
const QJsonObject &
object)
562 return object.contains(
"containerbase");
565 bool looksLikeSwiftTypeValuePairJson(
const QJsonObject &
object)
567 return (
object.contains(
"type") &&
object.contains(
"value"));
570 bool looksLikeSwiftDbJson(
const QJsonObject &
object) {
return (
object.contains(
"data")); }
575 if (json.
isEmpty()) {
return empty; }
577 return firstJsonValueAsString(obj);
583 if (json.
isEmpty()) {
return empty; }
585 if (keys1.
isEmpty()) {
return empty; }
595 if (json.
isEmpty()) {
return empty; }
597 return firstJsonValueAsStringList(obj);
600 int firstJsonValueAsInt(
const QString &json,
int defaultValue,
bool *ok)
602 if (ok) { *ok =
false; }
603 if (json.
isEmpty()) {
return defaultValue; }
605 return firstJsonValueAsInt(obj, defaultValue, ok);
608 int firstJsonValueAsInt(
const QJsonObject &json,
int defaultValue,
bool *ok)
610 if (ok) { *ok =
false; }
611 if (json.
isEmpty()) {
return defaultValue; }
613 if (keys1.
isEmpty()) {
return defaultValue; }
616 if (ok) { *ok =
true; }
617 return json.
value(
"value").
toInt(defaultValue);
621 if (!jsonLevel1.
contains(
"value")) {
return defaultValue; }
622 if (ok) { *ok =
true; }
623 return jsonLevel1.
value(
"value").
toInt(defaultValue);
629 if (json.
isEmpty()) {
return empty; }
631 if (keys1.
isEmpty()) {
return empty; }
635 return arrayToQStringList(jsonLevel1.
value(
"value").
toArray());
641 if (array.
isEmpty()) {
return sl; }
642 for (
int i = 0; i < array.
size(); i++)
Thrown when a convertFromJson method encounters an unrecoverable error in JSON data.
QString stringFromJsonObject(const QJsonObject &jsonObject, QJsonDocument::JsonFormat format)
JSON Object from string.
QJsonObject & appendJsonObject(QJsonObject &target, const QJsonObject &toBeAppended)
Append to first JSON object (concatenate)
QJsonObject jsonObjectFromString(const QString &json, bool acceptCacheFormat)
JSON Object from string.
QJsonArray jsonArrayFromString(const QString &json)
JSON Array from string.
const QJsonValue & operator>>(const QJsonValue &json, int &value)
Streaming operators for QJsonValue (to value)
Free functions in swift::misc.
SWIFT_MISC_EXPORT QString pixmapToPngHexString(const QPixmap &pixmap)
Pixmap as HEX string (for PNG image)
SWIFT_MISC_EXPORT bool pngHexStringToPixmapRef(const QString &hexString, QPixmap &pixmap)
Hex encoded pixmap string to Pixmap.
QDebug operator<<(QDebug d, const CRange< I > &range)
Streaming operators for CRange to qDebug.
SWIFT_MISC_EXPORT QDateTime fromStringUtc(const QString &dateTimeString, const QString &format)
Same as QDateTime::fromString but QDateTime will be set to UTC.
QByteArray fromHex(const QByteArray &hexEncoded)
QString toString(QStringView format) const const
void append(const QJsonValue &value)
QJsonValue at(qsizetype i) const const
QJsonArray fromStringList(const QStringList &list)
bool isEmpty() const const
qsizetype size() const const
QJsonArray array() const const
QJsonDocument fromJson(const QByteArray &json, QJsonParseError *error)
QJsonObject object() const const
QByteArray toJson(QJsonDocument::JsonFormat format) const const
QJsonObject::const_iterator constBegin() const const
bool contains(QLatin1StringView key) const const
QJsonObject::iterator insert(QLatin1StringView key, const QJsonValue &value)
bool isEmpty() const const
QStringList keys() const const
void remove(QLatin1StringView key)
QJsonValue value(QLatin1StringView key) const const
bool isObject() const const
bool isString() const const
QJsonArray toArray() const const
bool toBool(bool defaultValue) const const
double toDouble(double defaultValue) const const
int toInt(int defaultValue) const const
QJsonObject toObject() const const
QString toString() const const
QList< T >::reference front()
bool isEmpty() const const
void push_back(QList< T >::parameter_type value)
qsizetype size() const const
QString::const_iterator constBegin() const const
bool endsWith(QChar c, Qt::CaseSensitivity cs) const const
QString fromStdString(const std::string &str)
bool isEmpty() const const
bool startsWith(QChar c, Qt::CaseSensitivity cs) const const
std::string toStdString() const const
QByteArray toUtf8() const const
QString trimmed() const const
bool contains(QLatin1StringView str, Qt::CaseSensitivity cs) const const