wxJSON ReadMe ------------- Description: JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language. Original author: Luciano Cattani Original website: http://luccat.users.sf.net/wxjson/ INSTALLATION ------------ For installation instructions see the INSTALL text file. DOCUMENTATION ------------- The library has a wide documentation that you find in the 'docs/html/' subfolder if you installed from the tarball. If you got the library by directly accessing the SVN repository, you have to build the docs by yourself using the 'doxygen' documentation generator (http://doxygen.sf.net). Type the following commands: $ cd docs $ doxygen CHANGELOG --------- 0.1.0 first version of wxJSON at wxCode 0.2.0 this version adds full support for C/C++ comment lines reading and writing 0.2.1 this is a bug fix release (thanks to Jere, who reported the bugs): - wxJSONValue::sm_progr: the initialization of this static data member fails to compile if the library is compiled as an imported DLL on win32 - ::wxLogTrace(char*) function does not accept char* as arguments in wxWidgets 2.8.7: all string constants parameters to that function were enclosed in the _T() macro 0.2.2 bug fix release: this release fixed the bug in the wxJSONValue:: IsSameAs() function (see docs for more details) 0.2.3 bug fix release: the library did not compile in UNICODE mode because some string constants were not enclosed in the _T() macro. In this release the compile problems were fixed and the library and the test application do compile but they do not work properly in the JSON parser and writer when compiled in UNICODE mode. 0.3.0 this release adds support for writing and reading JSON text from a stream in UTF-8 format in both ANSI and Unicode builds of wxWidgets. 0.3.1 fixed a bug in the wxJSONReader::ReadString() function which did not handle correctly the unicode escape sequences. 0.4.0 this version uses copy-on-write (also known as 'reference counting') in the copy constructor and assignment operator 0.4.1 fixed bugs in the wxJSONWriter::Write() function which now does not return a status code. fixed a bug in the wxJSONReader::AddWarning() function which did not take into account the individual extension's ON/OFF flag. Improved wxJSONWriter's and wxJSONReader's documentation related to input from / output to strings and streams 0.5.0 this release adds support for 64-bits integer on platforms that support them. 0.5.1 fixed a bug in the wxJSONWriter::WriteChar() function which did not compile on Borland BCC 5.5. fixed a bug in the wxJSONReader::ReadValue() function which stores wrong values if 32-bits integer support is disabled. This bug also affects all other 0.x versions of the wxJSON parser. 0.5.2 fixed a bug in the wxJSONWriter::DoWrite() function: I forgot the 'case' wxJSONTYPE_(U)INT64 types in the switch statement so 64-bits integers where not printed in the JSON text output. introduced the 'unsigned int' recognition by the parser by prepending a plus sign (+) to the unsigned int value. 1.0.0 this release breaks compatibility with 0.x versions: please note that there is not a 'compatibility' version of this library. New features: (r 777) changed wxJSONTYPE_EMPTY to wxJSONTYPE_INVALID. (r 785) added support for '(unsigned) long int' and '(unsigned) short int' data type. changed return value of the wxJSONValue::Is(U)Int Is(U)Int64 functions. removed the 'unsigned int' recognition by the parser due to incompatibility with other JSON parsers. (r 787) added the following wxJSONWriter's flags: - wxJSONWRITER_NO_LINEFEED: suppress LF - wxJSONWRITER_ESCAPE_SOLIDUS: the solidus char is not escaped by default - wxJSONWRITER_MULTILINE_STRING: LFs and TABs are not escaped - wxJSONWRITER_RECOGNIZE_UNSIGNED: force the reader to recognize unsigned - wxJSONWRITER_TAB_INDENT: use TABs instead of spaces for indentation 1.0.1 a bug-fix release: fixed bug #2720660 (wxJSONwriter writes the wrong character for escaped characters) 1.0.2 a bug-fix release: fixed bug #2795247 (wxJSONwriter does not escape control characters (r 960) fixed the bug - see the Bug Tracker on sf.net 1.1.0 this release is a rewriting of the wxJSONReader and wxJSONWriter class which now process JSON text input / output only in UTF-8 format. If I/O is from / to wxString objects, the reader and the writer convert the string object to a temporary UTF-8 memory-input/output-stream for processing 1.1.1 fixed bug # 2898794 (build errors on gcc) and bug #2909326 (error reading UTF-8 strings that contain unrepresentable chars in ANSI mode). 1.2.0 (r 1147) fixed bug ID 2910776 (error writing double values) (r 1146) fixed bug ID 2898794 (error and warnings in building wxJSON) (r 1150) implemented the use of STL if wxWidgets is compiled using --enable-stl (r 1152) implement the precision format string when writing doubles (r 1153) document the issue when writing doubles (r 1154) document the STL version of containers and iterators (see Test #14) (r 1157) modified bakefile output: only build the wxJSON library (r 1158) code cleanup: removed commented out code, unused symbols and macros.. (r 1159) use spaces for indentation and fix line-ending confusion 1.2.1 (r 1343) fixed bug #3005593 in the wxJSONReader::SkipComment() function: when C-style comments are read the funct returned the wrong char 1.3.0 (r 1164) implemented the wxJSONValue new data type: memory buffers implemented the writing of the new data type implemented the reading of the new data type BUGS ---- I guess they should be opened here as issues. LICENSE ------- The wxJSON library is distributed under the terms of the wxWindows Library Licence (http://www.wxwidgets.org/about/licence) either the current version 3.1 or, at your option, any later version.