gem

A fast JSON parser and Object marshaller as a Ruby gem.

Version 3.13 is out with a much faster parser (Oj::Parser) and option isolation.

Using

require 'oj'

h = { 'one' => 1, 'array' => [ true, false ] }
json = Oj.dump(h)

# json =
# {
#   "one":1,
#   "array":[
#     true,
#     false
#   ]
# }

h2 = Oj.load(json)
puts "Same? #{h == h2}"
# true

Installation

gem install oj

or in Bundler:

gem 'oj'

Rails and json quickstart

See the Quickstart sections of the Rails and json docs.

multi_json

Code which uses multi_json will automatically prefer Oj if it is installed.

Support

Get supported Oj with a Tidelift Subscription. Security updates are supported.

Further Reading

For more details on options, modes, advanced features, and more follow these links.

  • {file:Options{file:Options.md}[pages/Options.md] for parse and dump options.

  • {file:Modes{file:Modes.md}[pages/Modes.md] for details on modes for strict JSON compliance, mimicking the JSON gem, and mimicking Rails and ActiveSupport behavior.

  • {file:JsonGem{file:JsonGem.md}[pages/JsonGem.md] includes more details on json gem compatibility and use.

  • {file:Rails{file:Rails.md}[pages/Rails.md] includes more details on Rails and ActiveSupport compatibility and use.

  • {file:Custom{file:Custom.md}[pages/Custom.md] includes more details on Custom mode.

  • {file:Encoding{file:Encoding.md}[pages/Encoding.md] describes the :object encoding format.

  • {file:Compatibility{file:Compatibility.md}[pages/Compatibility.md] lists current compatibility with Rubys and Rails.

  • {file:Advanced{file:Advanced.md}[pages/Advanced.md] for fast parser and marshalling features.

  • {file:Security{file:Security.md}[pages/Security.md] for security considerations.

  • {file:InstallOptions{file:InstallOptions.md}[pages/InstallOptions.md] for install option.

Releases

See {file:CHANGELOG{file:CHANGELOG.md}[CHANGELOG.md] and {file:RELEASE_NOTES{file:RELEASE_NOTES.md}[RELEASE_NOTES.md]

Follow @peterohler on Twitter for announcements and news about the Oj gem.

Performance Comparisons

Links of Interest

Contributing

  • Provide a Pull Request off the develop branch.

  • Report a bug

  • Suggest an idea

  • Code is now formatted with the clang-format tool with the configuration file in the root of the repo.