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

instance method JSON::State#strict

strict -> boolRuby 3.3 から[permalink][rdoc][edit]
strict? -> bool
strict=(enable)

JSON 形式で表現できない型のオブジェクトが現れたときの挙動を取得・設定します。

偽の場合(デフォルト)、JSON 形式で表現できない型のオブジェクトは文字列に変換されて出力されます。真の場合、そのようなオブジェクトが現れると JSON::GeneratorError が発生します。

[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

[SEE_ALSO] JSON::State#as_json=