This is an implementation of the JSON specification according to RFC 4627. You can think of it as a low-fat alternative to XML if you want to store data on disk or transmit it over a network rather than use a verbose markup language. Both variants of the JSON generator generate UTF-8 character sequences by default. If an:ascii_only option with a true value is given, they escape all non-ASCII and control characters with \uXXXX escape sequences, and support UTF-16 surrogate pairs in order to be able to generate the whole range of Unicode code points. All strings, that are to be encoded as JSON strings, should be UTF-8 byte sequences on the Ruby side. To encode raw binary strings, that aren't UTF-8 encoded, please use the to_json_raw_object method of String (which produces an object, that contains a byte array) and decode the result on the receiving endpoint.
Features
- Pure ruby variant, that relies on the iconv and the stringscan extensions
- Quite a bit faster native extension variant
- Implemented in C or Java and comes with its own unicode conversion functions
- Parser generated by the Ragel state machine compiler
- It's recommended to use the extension variant of JSON
- Examples available