Use X to JSON

Lots of Ruby libraries utilize JSON parsing in some form, and everyone has their favorite JSON library. In order to best support multiple JSON parsers and libraries, multi_json is a general-purpose swappable JSON backend library. You use it like so:

require 'multi_json'

MultiJson.engine = :yajl
MultiJson.decode('{"abc":"def"}') # decoded using Yajl

MultiJson.engine = :json_gem
MultiJson.engine = MultiJson::Engines::JsonGem # equivalent to previous line
MultiJson.encode({:abc => 'def'}) # encoded using the JSON gem

The engine setter takes either a symbol or a class (to allow for custom JSON parsers) that responds to both .decode and .encode at the class level.

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don’t break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.

Copyright © 2010 Michael Bleigh and Intridea, Inc. See LICENSE for details.