Convert JSON to a Ruby hash with symbol or string keys. Part of the DevTools Surf developer suite. Browse more tools in the Converters collection.
Use Cases
Ruby developers converting JSON API responses into Ruby hash fixtures
Rails developers generating seed data from JSON exports
Backend devs pasting Ruby-compatible hash literals into IRB sessions
QA engineers creating Ruby test data from JSON configuration files
Tips
Paste JSON to get a Ruby hash with symbol or string key formatting
Toggle between symbol keys (:name) and string keys ('name') for your preference
null is converted to Ruby's nil and booleans remain lowercase
Fun Facts
Ruby symbols (:name) are immutable, interned strings stored once in memory — using symbols as hash keys is faster than strings because comparison is by object ID.
Ruby's hash rocket syntax (=>) was the only option until Ruby 1.9 (2007) introduced the JavaScript-like colon syntax ({ name: 'value' }) for symbol keys.
Yukihiro 'Matz' Matsumoto designed Ruby in 1993 to be 'a language more powerful than Perl and more object-oriented than Python.' Ruby on Rails (2004) drove its mass adoption.
FAQ
Symbol keys or string keys?
Toggleable. Symbols (`:key => value`) are more idiomatic Ruby; strings (`"key" => value`) are safer when JSON keys have special characters.
Does it use the new `{key: value}` syntax?
When symbol keys are enabled and the JSON keys are valid Ruby identifiers, yes. Mixed keys fall back to the `=>` form.
What about Ruby-specific types?
Numeric strings pass through as strings (not auto-converted). Dates and times in ISO format stay as strings; convert with `DateTime.parse` in your code.
Can I output as a Struct instead?
No — this tool outputs a hash. For structs, use a JSON-to-class converter and hand-port the class definition.