Ruby 4.1 リファレンスマニュアル

module function JSON?.load

load(source, proc = nil, options = {}) -> objectRuby 1.9.3 から[permalink][rdoc][edit]
restore(source, proc = nil, options = {}) -> object

与えられた JSON 形式の文字列を Ruby オブジェクトとしてロードして返します。

JSON?.parse との違いは、load は信頼できる入力源を読み込むための簡易メソッドである点です。 source には JSON 形式の文字列だけでなく、to_str, to_io, read のいずれかに応答するオブジェクト (File などの IO や、パスを表すオブジェクトなど) も指定でき、その内容を読み込んだ上で内部的に JSON?.parse を呼び出します。また、JSON?.parse とはデフォルトのオプション (特に create_additions) が異なります。

proc として手続きオブジェクトが与えられた場合は、読み込んだオブジェクトを引数にその手続きを呼び出します。

require 'json'
  
str=<<JSON
[1,2,3]
JSON
  
p JSON.load(str) # => [1,2,3]
p JSON.load(str, proc{|v| p v }) # => [1,2,3]
# 以下が表示される
# 1
# 2
# 3
# [1,2,3]
  
str=<<JSON
{ "a":1, "b":2, "c":3 }
JSON
  
p JSON.load(str) # => {"a"=>1, "b"=>2, "c"=>3}
p JSON.load(str, proc{|v| p v }) # => {"a"=>1, "b"=>2, "c"=>3}
# 以下が表示される
# "a"
# 1
# "b"
# 2
# "c"
# 3
# {"a"=>1, "b"=>2, "c"=>3}
[PARAM] source:
JSON 形式の文字列を指定します。他には、to_str, to_io, read メソッドを持つオブジェクトも指定可能です。
[PARAM] proc:
Proc オブジェクトを指定します。
[PARAM] options:
オプションをハッシュで指定します。指定可能なオプションは以下の通りです。
:max_nesting

入れ子になっているデータの最大の深さを指定します。偽を指定すると深さのチェックを行いません。デフォルトは偽です。

:allow_nan

真を指定した場合、JSON::NaN, JSON::Infinity, JSON::MinusInfinity を生成することを許すようになります。偽を指定した場合、これらの値を生成しようとすると例外が発生します。デフォルトは真です。

:allow_blank

真を指定すると、sourceがnilの場合にnilを返します。デフォルトは真です。

:create_additions

偽を指定するとマッチするクラスや JSON.create_id が見つかっても付加情報を生成しません。デフォルトは真です。

:symbolize_names

真を指定するとハッシュのキーを文字列ではなくシンボルにします。デフォルトは偽です。