Files
strawberry/3rdparty/qjson/README.md
2018-02-27 18:06:05 +01:00

108 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# QJson [![Build Status](https://travis-ci.org/flavio/qjson.svg?branch=master)](https://travis-ci.org/flavio/qjson)
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.
# Install
QJson requires:
- Qt 4.5 or greater
- cmake 2.6 or greater
Some possible cmake options:
- `-DCMAKE_BUILD_TYPE=DEBUG`: enables some debug output (other than making
easier to debug the code)
- `-DQJSON_BUILD_TESTS=yes` or `-DKDE4_BUILD_TESTS=yes`: builds the unit tests
- `-DCMAKE_INSTALL_PREFIX=${HOME}/testinstall`: install qjson in a custom directory
- `-DCMAKE_INCLUDE_PATH=${HOME}/testinstall/include`: include a custom include directory
- `-DCMAKE_LIBRARY_PATH=${HOME}/testinstall/lib`: include a custom library directory
- `-DLIB_DESTINATION=lib64`: if you have a 64 bit system with separate
libraries for 64 bit libraries
- `-DQJSON_VERBOSE_DEBUG_OUTPUT:BOOL=ON`: more debugging statements are
generated by the parser. It's useful only if you are trying to fix
the bison grammar.
For Unix/Linux/Mac:
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=_preferred_path_ ..
make
make install
/sbin/ldconfig #if necessary
# Contribute
The recommended way to submit your changes is via a pull request.
Before submitting a patch please ensure:
* Patched code compiles.
* The patch is fixing a specific issue or implementing a new feature
(its not doing multiple things at the same time).
* QJson unit tests have been updated.
* QJson unit tests are passing.
## Unit testing
QJson unit tests are located under the `tests` directory. You can enable them
passing the `-DQJSON_BUILD_TESTS=yes` option to `cmake`.
> Note well: make sure you followed the build instructions.
To run all the unit tests move into the build directory and type:
```
make tests
```
If you want to run the `QJson::Parser` unit tests just type:
```
./test/parser/testparser
```
If you want to run the `QJson::Serializer` unit tests just type:
```
./test/serializer/testserializer
```
If you want to run the `QJson::QObjectHelper` tests just type:
```
./tests/qobjecthelper/testqobjecthelper
```
If you want to test the QJson parser against a specific JSON object you can
use the `cmdline_tester` program.
This binary is located under the `tests` directory and has a
straightforward syntax:
```
./tests/cmdline_tester/cmdline_tester text_file_containing_json_object
```
The command will convert the JSON object to a `QVariant` and dump it to stdout.
More options are available via cli options, just checkout the `--help` output.
**Note well:** cmdline_tester relies on `qDebug()` to dump the object. `qDebug`
has some limitations, like being unable to print utf8 chars.
# License
This library is licensed under the Lesser GNU General Public License version 2.1.
See the COPYING.lib file for more information.
# Resources
* [Website](http://qjson.sourceforge.net/)
* [Mailing List](https://lists.sourceforge.net/mailman/listinfo/qjson-devel)
* Project Lead/Maintainer (2008-current): [Flavio Castelli](mailto:flavio@castelli.name).