gem
A fast JSON parser and Object marshaller as a Ruby gem.
Version 3.0 is out! 3.0 provides better json gem and Rails compatibility. It also provides additional optimization options.
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'
Support
Get supported Oj with a Tidelift Subscription.
Further Reading
For more details on options, modes, advanced features, and more follow these links.
- Options for parse and dump options.
- Modes for details on modes for strict JSON compliance, mimicing the JSON gem, and mimicing Rails and ActiveSupport behavior.
- JsonGem includes more details on json gem compatibility and use.
- Rails includes more details on Rails and ActiveSupport compatibility and use.
- Custom includes more details on Custom mode.
- Encoding describes the :object encoding format.
- Compatibility lists current compatibility with Rubys and Rails.
- Advanced for fast parser and marshalling features.
- Security for security considerations.
Releases
See CHANGELOG
Links
Documentation: http://www.ohler.com/oj/doc, http://rubydoc.info/gems/oj
- GitHub repo: https://github.com/ohler55/oj
- RubyGems repo: https://rubygems.org/gems/oj
Follow @peterohler on Twitter for announcements and news about the Oj gem.
Performance Comparisons
Oj Strict Mode Performance compares Oj strict mode parser performance to other JSON parsers.
Oj Compat Mode Performance compares Oj compat mode parser performance to other JSON parsers.
Oj Object Mode Performance compares Oj object mode parser performance to other marshallers.
Oj Callback Performance compares Oj callback parser performance to other JSON parsers.
Links of Interest
Fast XML parser and marshaller on RubyGems: https://rubygems.org/gems/ox
Fast XML parser and marshaller on GitHub: https://github.com/ohler55/ox
Need for Speed for an overview of how Oj::Doc was designed.
OjC, a C JSON parser: https://www.ohler.com/ojc also at https://github.com/ohler55/ojc
Piper Push Cache, push JSON to browsers: http://www.piperpushcache.com