Bird
Raised Fist0
Rubyprogramming~10 mins

JSON library basics in Ruby - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to load the JSON library.

Ruby
require '[1]'
Drag options to blanks, or click blank then click option'
Ajson
Bnet/http
Cdate
Dfileutils
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'net/http' instead of 'json' to load the JSON library.
Forgetting to require any library before using JSON methods.
2fill in blank
medium

Complete the code to parse a JSON string into a Ruby hash.

Ruby
data = JSON.[1]('{"name":"Alice","age":30}')
Drag options to blanks, or click blank then click option'
Adump
Bload
Cparse
Dgenerate
Attempts:
3 left
💡 Hint
Common Mistakes
Using JSON.generate which converts Ruby objects to JSON string.
Using JSON.dump which also converts Ruby objects to JSON string.
3fill in blank
hard

Fix the error in the code to convert a Ruby hash to a JSON string.

Ruby
json_string = JSON.[1]({name: "Bob", age: 25})
Drag options to blanks, or click blank then click option'
Aparse
Bload
Cparse_json
Dgenerate
Attempts:
3 left
💡 Hint
Common Mistakes
Using JSON.parse which is for reading JSON strings, not creating them.
Using JSON.load which is for loading JSON from files or strings.
4fill in blank
hard

Fill both blanks to create a JSON string from a Ruby hash and then parse it back.

Ruby
json_str = JSON.[1]({city: "Paris", country: "France"})
data = JSON.[2](json_str)
Drag options to blanks, or click blank then click option'
Agenerate
Bparse
Cload
Ddump
Attempts:
3 left
💡 Hint
Common Mistakes
Using JSON.dump instead of generate for the first step.
Using JSON.load instead of parse for the second step.
5fill in blank
hard

Fill all three blanks to parse a JSON string, access a value, and generate a new JSON string.

Ruby
data = JSON.[1]('{"fruit":"apple","count":10}')
count = data[[2]]
new_json = JSON.[3]({fruit: "apple", count: count + 5})
Drag options to blanks, or click blank then click option'
Aparse
B"count"
Cgenerate
D"fruit"
Attempts:
3 left
💡 Hint
Common Mistakes
Using symbols like :count instead of string keys like "count".
Using JSON.load instead of parse.
Using JSON.dump instead of generate.

Practice

(1/5)
1.

What does the Ruby JSON.parse method do?

easy
A. Reads a file from disk
B. Converts a Ruby object into a JSON string
C. Converts a JSON string into a Ruby object
D. Writes a JSON string to a file

Solution

  1. Step 1: Understand JSON.parse purpose

    The method JSON.parse reads a JSON formatted string and converts it into a Ruby data structure like a hash or array.
  2. Step 2: Compare with other JSON methods

    JSON.generate does the opposite by converting Ruby objects into JSON strings.
  3. Final Answer:

    Converts a JSON string into a Ruby object -> Option C
  4. Quick Check:

    JSON.parse = JSON string to Ruby object [OK]
Hint: Remember: parse means read JSON into Ruby [OK]
Common Mistakes:
  • Confusing parse with generate
  • Thinking parse writes files
  • Assuming parse converts Ruby to JSON
2.

Which of the following is the correct way to convert a Ruby hash {"name" => "Alice"} to a JSON string?

easy
A. JSON.generate({"name" => "Alice"})
B. JSON.dump({"name" => "Alice"}, $stdout)
C. JSON.load({"name" => "Alice"})
D. JSON.parse({"name" => "Alice"})

Solution

  1. Step 1: Identify method to convert Ruby object to JSON string

    JSON.generate converts Ruby objects like hashes into JSON strings.
  2. Step 2: Check other methods

    JSON.parse reads JSON strings, JSON.load is similar to parse but less common, JSON.dump also converts Ruby objects but requires a string or IO target.
  3. Final Answer:

    JSON.generate({"name" => "Alice"}) -> Option A
  4. Quick Check:

    generate = Ruby object to JSON string [OK]
Hint: Use generate to make JSON strings from Ruby hashes [OK]
Common Mistakes:
  • Using parse instead of generate
  • Confusing dump with parse
  • Passing Ruby hash directly to parse
3.

What is the output of this Ruby code?

require 'json'
json_str = '{"age":30,"city":"NY"}'
ruby_obj = JSON.parse(json_str)
puts ruby_obj["city"]
medium
A. SyntaxError
B. 30
C. nil
D. NY

Solution

  1. Step 1: Parse JSON string into Ruby hash

    The string {"age":30,"city":"NY"} is parsed into a Ruby hash with keys "age" and "city".
  2. Step 2: Access the value for key "city"

    Using ruby_obj["city"] returns the string "NY".
  3. Final Answer:

    NY -> Option D
  4. Quick Check:

    JSON.parse + key access = value [OK]
Hint: Parse JSON then access keys like a hash [OK]
Common Mistakes:
  • Expecting numeric output instead of string
  • Using symbol keys instead of string keys
  • Forgetting to require 'json'
4.

Identify the error in this Ruby code snippet:

require 'json'
json_str = '{"name": "Bob", "age": 25}'
ruby_obj = JSON.generate(json_str)
puts ruby_obj
medium
A. Using JSON.generate on a JSON string instead of a Ruby object
B. Missing require 'json' statement
C. Incorrect JSON string format
D. Using puts instead of print

Solution

  1. Step 1: Check method usage

    JSON.generate expects a Ruby object (like a hash), but here it is given a JSON string.
  2. Step 2: Understand correct usage

    To convert JSON string to Ruby object, use JSON.parse. To convert Ruby object to JSON string, use JSON.generate.
  3. Final Answer:

    Using JSON.generate on a JSON string instead of a Ruby object -> Option A
  4. Quick Check:

    generate needs Ruby object, not JSON string [OK]
Hint: Use parse for strings, generate for Ruby objects [OK]
Common Mistakes:
  • Confusing generate and parse
  • Passing string to generate
  • Ignoring error messages
5.

You have a Ruby array [1, 2, 3]. You want to convert it to a JSON string and then back to a Ruby array. Which sequence of methods correctly does this?

hard
A. JSON.dump(JSON.parse([1, 2, 3]))
B. JSON.load(JSON.dump([1, 2, 3]))
C. JSON.generate(JSON.parse([1, 2, 3]))
D. JSON.dump(JSON.load([1, 2, 3]))

Solution

  1. Step 1: Convert Ruby array to JSON string

    JSON.dump([1, 2, 3]) converts the Ruby array into a JSON string.
  2. Step 2: Convert JSON string back to Ruby array

    JSON.load reads the JSON string and returns the Ruby array.
  3. Step 3: Verify other options

    JSON.dump(JSON.parse([1, 2, 3])) tries to parse a Ruby array (invalid); JSON.generate(JSON.parse([1, 2, 3])) tries to parse a Ruby array (invalid); JSON.dump(JSON.load([1, 2, 3])) tries to load a Ruby array (invalid).
  4. Final Answer:

    JSON.load(JSON.dump([1, 2, 3])) -> Option B
  5. Quick Check:

    dump then load = Ruby array round-trip [OK]
Hint: Use dump then load for Ruby object to JSON and back [OK]
Common Mistakes:
  • Parsing Ruby objects instead of JSON strings
  • Using generate with parse incorrectly
  • Confusing dump/load with generate/parse
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard