# [](http://www.ohler.com/oj) gem
[](http://travis-ci.org/ohler55/oj?branch=master) [](https://ci.appveyor.com/project/ohler55/oj)   [](https://dependabot.com/compatibility-score.html?dependency-name=oj&package-manager=bundler&version-scheme=semver) [](https://tidelift.com/subscription/pkg/rubygems-oj?utm_source=rubygems-oj&utm_medium=referral&utm_campaign=readme)
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
```ruby
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.](https://tidelift.com/subscription/pkg/rubygems-oj?utm_source=rubygems-oj&utm_medium=referral&utm_campaign=readme) Security updates are [supported](https://tidelift.com/security).
## Further Reading
For more details on options, modes, advanced features, and more follow these
links.
- [{file:Options.md}](pages/Options.md) for parse and dump options.
- [{file:Modes.md}](pages/Modes.md) for details on modes for strict JSON compliance, mimicing the JSON gem, and mimicing Rails and ActiveSupport behavior.
- [{file:JsonGem.md}](pages/JsonGem.md) includes more details on json gem compatibility and use.
- [{file:Rails.md}](pages/Rails.md) includes more details on Rails and ActiveSupport compatibility and use.
- [{file:Custom.md}](pages/Custom.md) includes more details on Custom mode.
- [{file:Encoding.md}](pages/Encoding.md) describes the :object encoding format.
- [{file:Compatibility.md}](pages/Compatibility.md) lists current compatibility with Rubys and Rails.
- [{file:Advanced.md}](pages/Advanced.md) for fast parser and marshalling features.
- [{file:Security.md}](pages/Security.md) for security considerations.
## Releases
See [{file:CHANGELOG.md}](CHANGELOG.md)
## 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](http://twitter.com/peterohler) for announcements and news about the Oj gem.
#### Performance Comparisons
- [Oj Strict Mode Performance](http://www.ohler.com/dev/oj_misc/performance_strict.html) compares Oj strict mode parser performance to other JSON parsers.
- [Oj Compat Mode Performance](http://www.ohler.com/dev/oj_misc/performance_compat.html) compares Oj compat mode parser performance to other JSON parsers.
- [Oj Object Mode Performance](http://www.ohler.com/dev/oj_misc/performance_object.html) compares Oj object mode parser performance to other marshallers.
- [Oj Callback Performance](http://www.ohler.com/dev/oj_misc/performance_callback.html) 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](http://www.ohler.com/dev/need_for_speed/need_for_speed.html) 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
- *Agoo, a high performance Ruby web server supporting GraphQL on GitHub*: https://github.com/ohler55/agoo
- *Agoo-C, a high performance C web server supporting GraphQL on GitHub*: https://github.com/ohler55/agoo-c
#### Contributing
+ Provide a Pull Request off the `develop` branch.
+ Report a bug
+ Suggest an idea