It is a JSON serialization library of QE Framework. It allows you to serialize QObjects into JSON format using the object's properties and annotations.
It uses the same annotations that are available for QEOrm. Following the example in QEOrm, to get an object of class 'Book' serilized to JSON:
Book b1;
// ... fill b1 properties.
qe::json::SerializedItem target;
QEJson::instance().save( &book, &target);
// Get QJson result...
QJsonObject jsonB1 = target.value().toObject();
// Loading an object from QJsonObject.
Book b2;
QEJson::instance().load( &target, &b2);
You can see more examples into 'test' folder.
The easiest way to use this library in your code is by Conan Package Manager. Please use the project setup that you can find in QEJson/1.0.0 Conan.
If you use CMake, steps after adding this dependency to your "conanfile.py" are as usual:
$~/yourProject > mkdir build
$~/yourProject > cd build
$~/yourProject/build > conan install -s build_type=debug ..
$~/yourProject/build > cmake -DCMAKE_BUILD_TYPE=Debug ..
$~/yourProject/build > cmake --build .
This library uses Semantic Versioning and internal private implementation to provide a long-term, stable, and reusable binaries.
This license follows the dual-license pattern that Qt is currently using. A LGPL 3.0 license for projects that do not need commercial support, and another one, Commercial license for rest of cases.
You can find a brief comparison between both licenses in the below table:
License types | LGPLv3 | Commercial |
---|---|---|
Community Support | Yes | Yes |
Official Support Helpdesk | No | Yes |
Keep your application private | No | Yes |
Possible to keep your application private with dynamic linking | Yes | Yes |
No need to provide a relinking mechanism for QE Framework (can always use static linking) |
No | Yes |
No need to provide a copy of license and explicitly acknowledge the use of QE |
No | Yes |
No need to make copy of the QE Framework source code available for customers |
No | Yes |
Full rights to proprietary QE source code modifications | No | Yes |
Enforce DRM | See LGPLv3 FAQ | Yes |
Enforce software patents | See LGPLv3 FAQ | Yes |