Encode a Ruby string to a JSON string Encode a Ruby string to a JSON string json json

Encode a Ruby string to a JSON string


This works with the stock 1.9.3+ standard library JSON:

require 'json'JSON.generate('foo', quirks_mode: true) # => "\"foo\""

Without quirks_mode: true, you get the ridiculous "JSON::GeneratorError: only generation of JSON objects or arrays allowed".


As of Ruby 2.1, you can

require 'json''hello'.to_json


There are a myriad of JSON gems for Ruby, some pure Ruby some C-based for better performance.

Here is one that offers both pure-Ruby and C:http://flori.github.com/json/

And then its essentially:

require 'json'JSON.encode(something)

A popular JSON encoder/decoder with native C-bindings for performance is Yajl: https://github.com/brianmario/yajl-ruby

UPD from @Stewart:JSON.encode is provided by rails as is object.to_json. For uses outside of rails use JSON.generate which is in ruby 1.9.3 std-lib. – Stewart