QJson - a Qt based library for mapping JSON data to QVariant objects

QJson home page

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

QJson Documentation

# Introduction

JSON (JavaScript Object Notation) is a lightweight data-interchange format. It can represents integer, real number, string, an ordered sequence of value, and a collection of name/value pairs.

QJson is a qt-based library that maps JSON data to QVariant objects.

JSON arrays will be mapped to QVariantList instances, while JSON's objects will be mapped to QVariantMap.

# Usage

Converting JSON's data to QVariant instance is really simple:

// create a JSonDriver instance
QJson::Parser parser;
bool ok;
// json is a QString containing the data to convert
QVariant result = parser.parse (json, &ok);

Suppose you're going to convert this JSON data:

    {
        "encoding" : "UTF-8",
        "plug-ins" : [
            "python",
            "c++",
            "ruby"
            ],
        "indent" : { "length" : 3, "use_space" : true }
    }

The following code would convert the JSON data and parse it:

QJson::Parser parser;
bool ok;
QVariantMap result = parser.parse (json, &ok).toMap();
if (!ok) {
qFatal("An error occured during parsing");
exit (1);
}
qDebug() << "encoding:" << result["encoding"].toString();
qDebug() << "plugins:";
foreach (QVariant plugin, result["plug-ins"].toList()) {
qDebug() << "\t-" << plugin.toString();
}
QVariantMap nestedMap = result["indent"].toMap();
qDebug() << "length:" << nestedMap["length"].toInt();
qDebug() << "use_space:" << nestedMap["use_space"].toBool();

The output would be:

    encoding: "UTF-8"
    plugins:
      - "python"
      - "c++"
      - "ruby"
    length: 3
    use_space: true

The QJson::QObjectHelper class permits to serialize QObject instances into JSON. QJson::QObjectHelper also allows to initialize a QObject using the values stored inside of a JSON object.

# Build instructions

QJson build system is based on cmake. Download QJson sources, extract them, move inside the sources directory and then:

mkdir build
cd build
cmake ..
make
sudo make install

Author
  Flavio Castelli flavi.nosp@m.o@ca.nosp@m.stell.nosp@m.i.na.nosp@m.me

| hosts this site. |  | Send comments to: QJson Developers