Releases: Skycoder42/QtJsonSerializer
Feature Release
Changelist:
- Fixed deserializing invalid datetimes
- Added QJsonDocument::JsonFormat as extra parameter to the de/serializeTo Methods
- Fixed bug where priority of serializers was not used properly
- Added support for:
- QUrl
- QUuid
- QVersionNumber
- QByteArray
- QPoint, QSize, QLine, QRect
- QLocale
- QRegularExpression
- Remove QHash support - was not working to begin with
- Added basic example
Also, from this release on, A Ubuntu ppa and a custom brew repo have been added. Check the README.md
Qt 5.9.2 rebuild
With 5.9.2, you can now use QHash and QMap exchangable as they are now convertible into each other
Major Release - refactoring and new features
Changelist:
- Refactored backend
- conversion is now done via the
QJsonTypeConverter
interfaces - implementations for all supported types already exist
- protected methods have been removed. Implement the
QJsonTypeConverter
interface to serialize custom types
- conversion is now done via the
- Improved saftey/conversion checks for many types
- Added possibility to de/serialize
QSharedPointer
andQPointer
properties - Made
QPair<T1, T2>
de/serializable - Changed object conversion to use static metaobject instead of dynamic
- Added support for polymorphism
- Can serialize polymorphic types, if explicitly specified
- Can deserializes them via an extra json property.
- Exceptions now have a "property trace", that shows in which property the exception occured
- Improved generic methods to work with any de/serializable type, not just object/gadget types
For all changes, check the README and documentation at https://skycoder42.github.io/QJsonSerializer/ for more details.
Important:
As this release is a major release, it breaks binary compability! You will have to recompile your applications against this new version of the library. Source compability has been preserved, as long as you did not override any of the QJsonSerializer methods. If you did, you will have to replace them with a custom QJsonTypeConverter
Crash Fix
Fixed a bug that leads to a crash if you try to serialize an invalid QDate, QTime or QDateTime
Qt 5.9.1 Release
This release simply rebuilds against 5.9.1
The binaries are now CI generated
Critical bugfix
Version 2.2.0 maps feature failed because of a bug and incomplete testing. After rewriting all tests, this version fixes those bugs.
Maps and validation
Changelist:
- Add support for generic
QMap<QString, T>
properties (QString only, since they are converted to json objects)- Addes additional converter registration methods (for the map conversions)
- Deserializing an invalid enum string will now throw an exception
- Added the
QJsonSerializer::validationFlags
property- Allows to verify if no additional properties are in the json data
- Allows to verify all object properties have been filled from the json data
Qt 5.9 Release
No code changes. The only difference is that from this version on JsonSerializer is linked against Qt 5.9
Generic refactoring
This release refactors the generic methods. Now they all work as expected.
Important:
before, you would call deserialize<MyType>(jsonArray);
to de/serialize json arrays, aka QList types. This has changed. Now, you always specify the full type, i.e. deserialize<QList<MyType>>(jsonArray);
This change does not affect already compiled applications, but if you try to compile with this version, you will have to adjust those calls.
Sorry for the inconvenience, but this was a neccessary step.
Fixed headers
Fixed a fail in the headers on gcc and android