JSON with Ruby


This chapter covers how to encode and decode JSON objects using Ruby programming language. Let's start with preparing the environment to start our programming with Ruby for JSON.


Before you start with encoding and decoding JSON using Ruby, you need to install any of the JSON modules available for Ruby. You may need to install Ruby gem, but if you are running latest version of Ruby then you must have gem already installed on your machine, otherwise let's follow the following single step assuming you already have gem installed −

$gem install json

Parsing JSON using Ruby

The following example shows that the first 2 keys hold string values and the last 3 keys hold arrays of strings. Let's keep the following content in a file called input.json.

   "President": "Alan Isaac",
   "CEO": "David Richardson",
   "India": [
      "Sachin Tendulkar",
      "Virender Sehwag",
      "Gautam Gambhir",

   "Srilanka": [
      "Lasith Malinga",
      "Angelo Mathews",
      "Kumar Sangakkara"

   "England": [
      "Alastair Cook",
      "Jonathan Trott",
      "Kevin Pietersen"

Given below is a Ruby program that will be used to parse the above mentioned JSON document −

require 'rubygems'
require 'json'
require 'pp'

json = File.read('input.json')
obj = JSON.parse(json)

pp obj

On executing, it will produce the following result −

   "President"=>"Alan Isaac",
   "CEO"=>"David Richardson",

   ["Sachin Tendulkar", "Virender Sehwag", "Gautam Gambhir"],

   ["Lasith Malinga ", "Angelo Mathews", "Kumar Sangakkara"],

   ["Alastair Cook", "Jonathan Trott", "Kevin Pietersen"]