|| ||Emmanuele Bassi <ebassi-AT-gmail.com>|
|| ||[ANNOUNCE] JSON-GLib 0.5.0 - developers snapshot|
|| ||Sun, 20 Apr 2008 11:34:43 +0100|
JSON-GLib 0.5.0 is now available for download at:
this is the first developers snapshot of the JSON-GLib library for the
JSON-GLib is a library providing serialization and deserialization
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
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,
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 is available in GNOME SVN:
The development is mostly done inside a git repository, available at:
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
gnome-announce-list mailing list
to post comments)