Initial commit.
This commit is contained in:
107
3rdparty/qjson/README.md
vendored
Normal file
107
3rdparty/qjson/README.md
vendored
Normal file
@@ -0,0 +1,107 @@
|
||||
# QJson [](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
|
||||
(it’s 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).
|
||||
Reference in New Issue
Block a user