Skip to content
This repository has been archived by the owner on Mar 4, 2023. It is now read-only.

Releases: Skycoder42/QtJsonSerializer

Feature Release

11 Nov 09:42
62e0806
Compare
Choose a tag to compare

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

07 Oct 11:15
Compare
Choose a tag to compare

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

19 Aug 17:20
Compare
Choose a tag to compare

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
  • Improved saftey/conversion checks for many types
  • Added possibility to de/serialize QSharedPointer and QPointer 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

10 Aug 07:43
Compare
Choose a tag to compare

Fixed a bug that leads to a crash if you try to serialize an invalid QDate, QTime or QDateTime

Qt 5.9.1 Release

15 Jul 12:49
Compare
Choose a tag to compare

This release simply rebuilds against 5.9.1

The binaries are now CI generated

Critical bugfix

17 Jun 10:13
Compare
Choose a tag to compare

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

16 Jun 15:50
Compare
Choose a tag to compare

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

02 Jun 16:24
Compare
Choose a tag to compare

No code changes. The only difference is that from this version on JsonSerializer is linked against Qt 5.9

Generic refactoring

22 Apr 12:35
Compare
Choose a tag to compare

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

13 Apr 13:48
Compare
Choose a tag to compare

Fixed a fail in the headers on gcc and android