Qt QSettings in JSON format.
Source code:
#include <QtCore/QCoreApplication> #include <qjsonsettings.h> static auto JSONFormat = QSettings::InvalidFormat; int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); // Register JSON format JSONFormat = QJsonSettings::registerFormat(); QSettings settings("settings.json", JSONFormat); settings.setValue("a", 1); settings.setValue("b/c", true); settings.setValue("d/e/f", "Hello World!"); settings.setValue("foo", "foo"); settings.setValue("foo/bar", "foo/bar"); settings.sync(); return 0; }Output settings file:
{ "a": 1, "b": { "c": true }, "d": { "e": { "f": "Hello World!" } }, "foo": { "$value": "foo", "bar": "foo/bar" } }$value: If the current key has subkeys, its value is stored in the$typeproperty$type/$data: If the value is of a complex type, it is stored using a json object in the following format:{ "$type": "<qt metatype id>", "$data": "<serialized data>" }