JSON was originally specified with a simple syntax diagram on JSON.org

As JSON became more and more widely used, an internet RFC was published by Douglas Crockford, the original creator of JSON. That document is RFC 4627 , which is now the definitive specification for JSON.

I am currently conducting a review of jyson's compliance with RFC 4627.

Now, there is a json module in the cpython standard library, as of version 2.6. Which means that jython will need to have a json module when it reaches version 2.6. This may be achieved by running the pure python version of the json module (the cpython json module relies on C extensions for some of it's speed).

But the C extensions won't run on jython, meaning that jython will suffer a speed penalty running the existing pure python module.

If jyson can be made to implement the same API as the cpython json module, then I will contribute the module to jython.

Here is a list of the main areas in which there are differences between the APIs

Because the cpython json module supports encoding and decoding from file-like objects, it has no choice but to concern itself with character encodings, since file-like objects are byte-oriented.

Jyson leaves the task of character encoding to the user. For example, the character encoding of a JSON document might be declared in a HTTP header, which is available to the programmer, but not to jyson.

When JSON was originally created, it contained no specifications for character encoding. However, RFC 4627 now contains specifications of how JSON codecs should behave in relation to character encodings, and so jyson will have to the same.