QJson home page
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
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:

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

SourceForge Logo hosts this site. Send comments to:
QJson Developers