JSON.generate turns Ruby hashes and arrays into JSON text.

json generate Generating JSON is useful when Ruby needs to send or save structured data as text.

JSON Generate

status
json_generate.rb
Replay: real traced execution (multi-file project)
require "json"

status = "active"
record = {
  name: "Ruby",
  status: status,
  lessons: 4
}

json_text = JSON.generate(record)
status_text = record[:status]

puts "status=#{status_text}"
puts "json=#{json_text}"
require "json"

status = "paused"
record = {
  name: "Ruby",
  status: status,
  lessons: 4
}

json_text = JSON.generate(record)
status_text = record[:status]

puts "status=#{status_text}"
puts "json=#{json_text}"
require "json"

status = "archived"
record = {
  name: "Ruby",
  status: status,
  lessons: 4
}

json_text = JSON.generate(record)
status_text = record[:status]

puts "status=#{status_text}"
puts "json=#{json_text}"
  1. status ← active, json_text ← {"name":"Ruby","status":"active","lessons":4}

    1require "json"23status→ active = "active"  #@status="paused", "archived"4record = {5  name: "Ruby",6  status: status,7  lessons: 48}910json_text→ {"name":"Ruby","status":"active","lessons":4} = JSON.generate(record){"name":"Ruby","status":"active","lessons":4}11status_text→ active = record[:status]active1213puts "status=#{status_textactive}"14puts "json=#{json_text{"name":"Ruby","status":"active","lessons":4}}"
    outputstatus=active
    json={"name":"Ruby","status":"active","lessons":4}
  1. status ← paused, json_text ← {"name":"Ruby","status":"paused","lessons":4}

    1require "json"23status→ paused = "paused"4record = {5  name: "Ruby",6  status: status,7  lessons: 48}910json_text→ {"name":"Ruby","status":"paused","lessons":4} = JSON.generate(record){"name":"Ruby","status":"paused","lessons":4}11status_text→ paused = record[:status]paused1213puts "status=#{status_textpaused}"14puts "json=#{json_text{"name":"Ruby","status":"paused","lessons":4}}"
    outputstatus=paused
    json={"name":"Ruby","status":"paused","lessons":4}
  1. status ← archived, json_text ← {"name":"Ruby","status":"archived","lessons":4}

    1require "json"23status→ archived = "archived"4record = {5  name: "Ruby",6  status: status,7  lessons: 48}910json_text→ {"name":"Ruby","status":"archived","lessons":4} = JSON.generate(record){"name":"Ruby","status":"archived","lessons":4}11status_text→ archived = record[:status]archived1213puts "status=#{status_textarchived}"14puts "json=#{json_text{"name":"Ruby","status":"archived","lessons":4}}"
    outputstatus=archived
    json={"name":"Ruby","status":"archived","lessons":4}