diff --git a/src/io/jsonadapter.cpp b/src/io/jsonadapter.cpp index df65120..6d1f080 100644 --- a/src/io/jsonadapter.cpp +++ b/src/io/jsonadapter.cpp @@ -136,13 +136,19 @@ QJsonObject JsonAdapter::serializeRec(const QObject* obj, const QMetaObject* bas } else { if (val.canConvert()) val = val.value().toVariant(); - if (val.canConvert()) { - val.convert(QMetaType::fromType()); - } else if (val.canConvert()) { - val.convert(QMetaType::fromType()); + auto jsonVal = QJsonValue::fromVariant(val); + + if (jsonVal.isNull() && !val.isNull() && val.isValid()) { + if (val.canConvert()) { + val.convert(QMetaType::fromType()); + } else if (val.canConvert()) { + val.convert(QMetaType::fromType()); + } + + jsonVal = QJsonValue::fromVariant(val); } - json.insert(prop.name(), QJsonValue::fromVariant(val)); + json.insert(prop.name(), jsonVal); } } }