aliases: JSON::Ext::Parser
要約
目次
特異メソッド
new(source, options => {}) -> JSON::Parser
[permalink][rdoc][edit]-
パーサを初期化します。
第二引数のハッシュには以下のキーを指定することができます。
- :max_nesting
-
データ構造のネストの深さの最大値を指定します。デフォルトは 19 です。チェックを無効にするにはゼロまたは偽を指定してください。
- :allow_nan
-
真を指定すると [RFC4627] を無視して NaN, Infinity, -Infinity をパースエラーにしません。デフォルトは偽です。
- :create_additions
-
偽を指定するとマッチするクラスや ID があっても付加情報を生成しません。デフォルトは真です。
- :object_class
-
JSON のオブジェクトを変換するクラスを指定します。デフォルトは Hash です。
- :array_class
-
JSON の配列を変換するクラスを指定します。デフォルトは Array です。
- [PARAM] source:
- パーサの元となる文字列を指定します。
- [PARAM] options:
- オプションを指定するためのハッシュです。
require 'json' parser = JSON::Parser.new(DATA.read) print parser.source # => { # => "Tanaka": { # => "name":"tanaka", # => "age":20 # => }, # => "Suzuki": { # => "name":"suzuki", # => "age":25 # => } # => } __END__ { "Tanaka": { "name":"tanaka", "age":20 }, "Suzuki": { "name":"suzuki", "age":25 } }
require 'json' class Person attr_accessor :name, :age def []=(key, value) instance_variable_set("@#{key}", value) end end parser = JSON::Parser.new(DATA.read, object_class: Person) person = parser.parse person.class # => Person person.name # => "tanaka" person.age # => 20 __END__ { "name":"tanaka", "age":20 }
インスタンスメソッド
parse -> object
[permalink][rdoc][edit]-
現在のソースをパースして結果を Ruby のオブジェクトとして返します。
require 'json' class Person attr_accessor :name, :age def []=(key, value) instance_variable_set("@#{key}", value) end end parser = JSON::Parser.new(DATA.read, object_class: Person) person = parser.parse person.class # => Person person.name # => "tanaka" person.age # => 20 __END__ { "name":"tanaka", "age":20 }
[SEE_ALSO] JSON::Parser#source
source -> String
[permalink][rdoc][edit]-
現在のソースのコピーを返します。
require 'json' parser = JSON::Parser.new(DATA.read) print parser.source # => { # => "Tanaka": { # => "name":"tanaka", # => "age":20 # => }, # => "Suzuki": { # => "name":"suzuki", # => "age":25 # => } # => } __END__ { "Tanaka": { "name":"tanaka", "age":20 }, "Suzuki": { "name":"suzuki", "age":25 } }