[ANNOUNCE] JSON-GLib 0.5.0 - developers snapshot



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



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]