stdlib/json_documents_no_parens.rb

tests/_examples/stdlib/json_documents_no_parens.rb in the metorex repository.

require "json"

held = JSON.parse('{"name": "Ada", "years": [1815, 1852], "note": null, "rate": 2.5}')
puts held["name"]
puts held["years"].inspect
puts held["note"].inspect
puts held["rate"]

puts JSON.parse('{"a": 1}', symbolize_names: true).inspect
puts JSON.generate "a" => 1, "b" => [true, false, nil]
puts JSON.pretty_generate({ "a" => 1, "b" => [1, 2] })
puts({ "k" => "v" }.to_json)
puts [1, "two", nil].to_json

puts JSON.parse('"a\nbA"').inspect
puts JSON.parse("[]").inspect
puts JSON.parse("{}").inspect

begin
  JSON.parse("{")
rescue JSON::ParserError => refused
  puts "refused: #{refused.class}"
end

# A number too long to walk digit by digit is read in one step.
puts JSON.parse("[1.#{'1' * 100000}]").first

Output:

Ada
[1815, 1852]
nil
2.5
{a: 1}
{"a":1,"b":[true,false,null]}
{
  "a": 1,
  "b": [
    1,
    2
  ]
}
{"k":"v"}
[1,"two",null]
"a\nbA"
[]
{}
refused: JSON::ParserError
1.1111111111111112