new(options = {}) -> JSON::StateRuby 1.9.3 から[permalink][rdoc][edit]-
自身を初期化します。
- [PARAM]
options: - ハッシュを指定します。指定可能なオプションは以下の通りです。
:indent-
インデントに使用する文字列を指定します。デフォルトは空文字列です。
:space-
JSON 形式の文字列のトークン間に挿入する文字列を指定します。デフォルトは空文字列です。
:space_before-
JSON 形式の文字列中で JavaScript のオブジェクトを表す部分にある ':' の前に挿入する文字列をセットします。デフォルトは空文字列です。
:object_nl-
JSON 形式の文字列中に現れる JavaScript のオブジェクトの行末に挿入する文字列を指定します。デフォルトは空文字列です。
:array_nl-
JSON 形式の文字列中に現れる JavaScript の配列の行末に挿入する文字列を指定します。デフォルトは空文字列です。
:check_circular-
真を指定した場合、生成するオブジェクトの循環をチェックします。この動作がデフォルトです。
:allow_nan-
真を指定した場合、JSON::NaN, JSON::Infinity, JSON::MinusInfinity を生成することを許すようになります。偽を指定した場合、これらの値を生成しようとすると例外が発生します。デフォルトは偽です。
:ascii_only-
真を指定した場合、ASCII 文字列のみを用いて JSON 形式の文字列を生成します。デフォルトは偽です。
:max_nesting-
入れ子になっているデータの最大の深さを指定します。 0 を指定すると深さのチェックを行いません。デフォルトは 100 です。
:script_safe-
真を指定すると、
/を\/に、U+2028・U+2029 を\u2028・\u2029にエスケープし、 JavaScript に埋め込んでも安全な JSON 形式の文字列を生成します。デフォルトは偽です。 :strict-
真を指定すると、nil・true・false・Integer・Float・String・Array・Hash 以外のオブジェクトを
to_jsonやto_sで変換せず、JSON::GeneratorError を発生させます。 Symbol は文字列として変換します。デフォルトは偽です。 :allow_duplicate_key-
真を指定すると、キーを文字列に変換した結果が重複するハッシュ(
{foo: 1, "foo" => 2}など)をそのまま出力します。デフォルトは偽で、この場合は JSON::GeneratorError が発生します。 :sort_keys-
真を指定すると、オブジェクト(ハッシュ)のキーを昇順に並べ替えます。
Procを指定すると、そのProcで並べ替えます。詳しくは JSON::State#sort_keys= を参照してください。デフォルトは偽です。 :rfc8785-
真を指定すると、[RFC8785] の JSON Canonicalization Scheme に従って正規化した JSON 形式の文字列を生成します。詳しくは JSON::State#rfc8785= を参照してください。デフォルトは偽です。
:buffer_initial_length-
JSON 形式の文字列を生成する際に使用する内部バッファの初期の長さを指定します。デフォルトは 1024 です。
例 Hash を指定
例 JSON::State を指定require "json" json_state = JSON::State.new(indent: "\t") json_state.class # => JSON::Ext::Generator::State json_state.indent # => "\t"require "json" json_state = JSON::State.new(indent: "\t") copy = JSON::State.new(json_state) copy.class # => JSON::Ext::Generator::State copy.indent # => "\t"
- [PARAM]