Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
One interface to various JSON ruby libs (yajl, json, json_pure, json-jruby, active_support). Has a preference for yajl.
Ruby

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
test
.gitignore
CHANGELOG.txt
CREDITS.txt
Gemfile
LICENSE.txt
README.md
Rakefile
rufus-json.gemspec

README.md

rufus-json

One interface for various JSON Ruby backends.

require 'rubygems'

# load your favourite JSON backend
require 'yajl'
#require 'json'
#require 'active_support'

require 'rufus-json' # gem install rufus-json

p Rufus::Json.decode('{"a":2,"b":true}')
p Rufus::Json.load('{"a":2,"b":true}')
  # => { 'a' => 2, 'b' => true }

p Rufus::Json.encode({ 'a' => 2, 'b' => true })
p Rufus::Json.dump({ 'a' => 2, 'b' => true })
  # => '{"a":2,"b":true}'

If multiple libs are present, it will favour yajl-ruby and json, and then active_support. It's OK to force a backend.

Rufus::Json.backend = :yajl
#Rufus::Json.backend = :json
#Rufus::Json.backend = :active

To know if there is currently a backend set :

Rufus::Json.has_backend?

It's OK to load a lib and force detection :

require 'json'
Rufus::Json.detect_backend

p Rufus::Json.backend
  # => :json

There is a dup method, it may be useful in an all JSON system (flattening stuff that will anyway get flattened later).

o = Rufus::Json.dup(o)

require 'rufus-json/automatic'

require 'rufus-json/automatic'

will require 'rufus-json' and load the first JSON lib available (in the order yajl, oj, jrjackson, active_support, json, json/pure.

It is equivalent to

  require 'rufus-json'
  Rufus::Json.load_backend

(the .load_backend method accepts a list/order of backends to try).

issue tracker

http://github.com/jmettraux/rufus-json/issues

irc

irc.freenode.net #ruote

authors

see CREDITS.txt

license

MIT, see LICENSE.txt

Something went wrong with that request. Please try again.