strict -> boolRuby 3.3 から[permalink][rdoc][edit]strict? -> boolstrict=(enable)-
JSON にネイティブ対応していない型のオブジェクトが現れたときの挙動を取得・設定します。
偽の場合(デフォルト)、nil・true・false・Integer・Float・String・Symbol・Array・Hash 以外のオブジェクトは
to_jsonメソッドを呼び出して変換します (JSON::Ext::Generator::GeneratorMethods::Object#to_json はto_sの結果の文字列にします)。真の場合、そのようなオブジェクトが現れると JSON::GeneratorError が発生します(to_jsonメソッドを定義していても呼び出されません)。真の場合、Symbol はハッシュのキーとしてのみ許可され、値に現れると JSON::GeneratorError が発生します。ハッシュのキーは
to_sで文字列に変換します。- [PARAM]
enable: - 真を指定すると、JSON にネイティブ対応していない型のオブジェクトが現れたときに例外を発生させるようになります。
- [EXCEPTION]
JSON::GeneratorError: -
strict?が真の状態で、JSON にネイティブ対応していない型のオブジェクトを変換しようとした場合に発生します。
require "json" state = JSON::State.new(strict: true) p state.strict? # => true begin JSON.generate([Object.new], state) rescue JSON::GeneratorError => e p e.message # => "Object not allowed in JSON" end - [PARAM]