Type:
Module
Constants:
NaN : 0.0/0
Infinity : 1.0/0
MinusInfinity : -Infinity
UnparserError : GeneratorError

This exception is raised if a generator or unparser error occurs.

JSON_LOADED : true unless defined?(::JSON::JSON_LOADED)
VERSION : '1.7.7'

JSON version

VERSION_ARRAY : VERSION.split(/\./).map { |x| x.to_i }
VERSION_MAJOR : VERSION_ARRAY[0]
VERSION_MINOR : VERSION_ARRAY[1]
VERSION_BUILD : VERSION_ARRAY[2]

JavaScript Object Notation (JSON)

JSON is a lightweight data-interchange format. It is easy for us humans to read and write. Plus, equally simple for machines to generate or parse. JSON is completely language agnostic, making it the ideal interchange format.

Built on two universally available structures:

1
2
1. A collection of name/value pairs. Often referred to as an _object_, hash table, record, struct, keyed list, or associative array.
2. An ordered list of values. More commonly called an _array_, vector, sequence or list.

To read more about JSON visit: json.org

Parsing JSON

To parse a JSON string received by another application or generated within your existing application:

1
2
3
4
require 'json'
 
my_hash = JSON.parse('{"hello": "goodbye"}')
puts my_hash["hello"] => "goodbye"

Notice the extra quotes '' around the hash notation. Ruby expects the argument to be a string and can't convert objects like a hash or array.

Ruby converts your string into a hash

Generating JSON

Creating a JSON string for communication or serialization is just as simple.

1
2
3
4
require 'json'
 
my_hash = {:hello => "goodbye"}
puts JSON.generate(my_hash) => "{\"hello\":\"goodbye\"}"

Or an alternative way:

1
2
require 'json'
puts {:hello => "goodbye"}.to_json => "{\"hello\":\"goodbye\"}"

JSON.generate only allows objects or arrays to be converted to JSON syntax. to_json, however, accepts many Ruby classes even though it acts only as a method for serialization:

1
2
3
require 'json'
 
1.to_json => "1"
to_json
  • References/Ruby on Rails/Ruby/Classes/JSON/JSON::Ext/JSON::Ext::Generator/JSON::Ext::Generator::GeneratorMethods/JSON::Ext::Generator::GeneratorMethods::String

to_json(*) Instance Public methods This string should be encoded with UTF-8

2025-01-10 15:47:30
const_defined_in?
  • References/Ruby on Rails/Ruby/Classes/JSON

const_defined_in?(modul, constant) Class Public methods

2025-01-10 15:47:30
to_json_raw_object
  • References/Ruby on Rails/Ruby/Classes/JSON/JSON::Ext/JSON::Ext::Generator/JSON::Ext::Generator::GeneratorMethods/JSON::Ext::Generator::GeneratorMethods::String

to_json_raw_object() Instance Public methods This method creates a raw object

2025-01-10 15:47:30
iconv
  • References/Ruby on Rails/Ruby/Classes/JSON

iconv(to, from, string) Class Public methods Encodes string using Ruby's String

2025-01-10 15:47:30
dump
  • References/Ruby on Rails/Ruby/Classes/JSON

dump(obj, anIO = nil, limit = nil) Instance Public methods Dumps obj

2025-01-10 15:47:30
generate
  • References/Ruby on Rails/Ruby/Classes/JSON

generate(obj, opts = nil) Instance Public methods Generate a

2025-01-10 15:47:30
to_hash
  • References/Ruby on Rails/Ruby/Classes/JSON/JSON::Ext/JSON::Ext::Generator/JSON::Ext::Generator::State

to_hash() Instance Public methods Alias for:

2025-01-10 15:47:30
to_json
  • References/Ruby on Rails/Ruby/Classes/JSON/JSON::Ext/JSON::Ext::Generator/JSON::Ext::Generator::GeneratorMethods/JSON::Ext::Generator::GeneratorMethods::Float

to_json(*) Instance Public methods Returns a

2025-01-10 15:47:30
json_create
  • References/Ruby on Rails/Ruby/Classes/JSON/JSON::Ext/JSON::Ext::Generator/JSON::Ext::Generator::GeneratorMethods/JSON::Ext::Generator::GeneratorMethods::String/JSON::Ext::Generator::GeneratorMethods::String::Extend

json_create(o) Instance Public methods Raw Strings are

2025-01-10 15:47:30
indent
  • References/Ruby on Rails/Ruby/Classes/JSON/JSON::Ext/JSON::Ext::Generator/JSON::Ext::Generator::State

indent() Instance Public methods This string is used to indent levels in the

2025-01-10 15:47:30