https://github.com/jpnurmi/qtjsongadget
toJson() & fromJson() for simple Q_GADGET value types
https://github.com/jpnurmi/qtjsongadget
gadget json qt
Last synced: about 1 year ago
JSON representation
toJson() & fromJson() for simple Q_GADGET value types
- Host: GitHub
- URL: https://github.com/jpnurmi/qtjsongadget
- Owner: jpnurmi
- License: mit
- Created: 2020-09-05T20:09:51.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-09-05T20:38:59.000Z (almost 6 years ago)
- Last Synced: 2025-03-25T04:36:05.370Z (over 1 year ago)
- Topics: gadget, json, qt
- Language: C++
- Homepage:
- Size: 4.88 KB
- Stars: 8
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# QtJsonGadget
See [QJsonValue::fromVariant()](https://doc.qt.io/qt-5/qjsonvalue.html#fromVariant)
for a full list of supported property types. Use `Q_PROPERTY(... STORED false)` to
ignore certain properties, if desired.
## Q_GADGET
```cpp
class ExampleGadget
{
Q_GADGET
Q_PROPERTY(bool prop1 MEMBER prop1)
Q_PROPERTY(int prop2 MEMBER prop2)
Q_PROPERTY(qreal prop3 MEMBER prop3)
Q_PROPERTY(QString prop4 MEMBER prop4)
public:
bool prop1 = false;
int prop2 = 0;
qreal prop3 = 0.0;
QString prop4;
};
```
## toJson()
```cpp
ExampleGadget gadget { true, 1, 3.14, "toJson" };
QJsonObject json = Gadget::toJson(&gadget);
qDebug() << json; // QJsonObject({"prop1":true,"prop2":1,"prop3":3.14,"prop4":"toJson"})
```
## fromJson()
```cpp
QJsonObject json {
{"prop1", false},
{"prop2", 2},
{"prop3", 6.18},
{"prop4", "fromJson"}
};
ExampleGadget gadget = Gadget::fromJson(json);
qDebug() << gadget.prop1 << gadget.prop2 << gadget.prop3 << gadget.prop4; // false 2 6.18 "fromJson"
```