news 28 Posted April 21, 2008 hi everyone; JSON-GLib 0.5.0 is now available for download at: http://folks.o-hand.com/~ebassi/sources/json-glib-0.5.0.tar.gz MD5 checksum: 83b117734de964d56c32f57fc3b19290 json-glib-0.5.0.tar.gz this is the first developers snapshot of the JSON-GLib library for the 0.6 cycle. JSON-GLib is a library providing serialization and deserialization support for the JavaScript Object Notation (JSON) format described by RFC 4627. JSON 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. -- From Introducing JSON Many high-level languages already provide native modules for parsing, generating and manipulating JSON data streams. JSON-GLib is a C library based on GLib and released under the terms of the GNU Lesser General Public License version 2.1. It provides a parser and a generator GObject classes and various wrappers for the complex data types employed by JSON, such as arrays and objects. JSON-GLib uses GLib native data types and the generic value container GValue for ease of development. It also provides integration with the GObject classes for direct serialization into, and deserialization from, JSON data streams. JSON-GLib currently requires: * GLib 2.16.0, or higher Bugs should be reported to http://bugzilla.openedhand.com in the json-glib product. JSON-GLib is available in GNOME SVN: http://svn.gnome.org/viewvc/json-glib/trunk/ The development is mostly done inside a git repository, available at: http://github.com/ebassi/json-glib/tree/master This is the first developers snapshot leading to the upcoming 0.6.0 release; installing this version will overwrite the files currently installed by the 0.4 releases. What's new in JSON-GLib --------------------------- * Allow deserialization of strings into enum and flag types When deserializing a GObject from a JSON object, the properties using a GEnum or a GFlags type will be automatically converted from a string containing their "nick" field into their integer value. * Add the :indent-char property to JsonGenerator Add the ability to specify the Unicode character that should be used to indent the JSON declaration when pretty-printing. * Add functions to retrieve copies of the nodes inside Object and Array * Fix leaks and invalid accesses * Use the right type for the buffer length parameter in JsonParser * Provide a default implementation for JsonSerializable GObject classes implementing JsonSerializable can decide whether to implement both, either or none the virtual functions of the interface. The default implementation will fall back to the same code path used when an object not implementing JsonSerializable is passed to the json_construct_gobject() and json_serialize_gobject() functions. * Provide our own JSON tokenizer (using GScanner) for the JSON-only features that would have been lost by using GScanner JSON has some encoding features that were lost when passing a data stream into GScanner; to prevent this, an internal version of GScanner has been added and modified to correctly tokenize JSON. The JsonScanner tokenizer is private. * Add support for parsing Unicode characters escaped using \uXXXX Thanks to JsonScanner, JSON-GLib now correctly handles Unicode characters using the \uXXXX escape sequence; the Unicode character is transparently added to the buffer. * Add a fully automated test suite, using the GTest framework Merge the work done in the test-framework branch. By using the new GTest API, JSON-GLib has a fully automated test suite excercising the whole API. This should make catching regressions a lot easier. * Allow 'null' nodes to return a value without warnings ciao, Emmanuele. -- Emmanuele Bassi, W: http://www.emmanuelebassi.net B: http://log.emmanuelebassi.net _______________________________________________ Share this post Link to post