generate(object, state = nil) -> StringRuby 1.9.3 から[permalink][rdoc][edit]unparse(object, state = nil) -> StringRuby 4.1 で削除-
与えられたオブジェクトを一行の JSON 形式の文字列に変換して返します。
デフォルトでは、サイズが最小となる JSON 形式の文字列を生成します。また、循環参照のチェックを行います。JSON::NaN, JSON::Infinity, JSON::MinusInfinity を生成することもありません。
unparse は将来削除される予定です。
- [PARAM]
object: - JSON 形式の文字列に変換するオブジェクトを指定します。
- [PARAM]
state: - JSON::State または、to_hash や to_h メソッドでハッシュに変換可能なオブジェクトを指定できます。ハッシュを使用する場合指定可能なオプションは以下の通りです。
:indent-
インデントに使用する文字列を指定します。デフォルトは空文字列です。
:space-
a string that is put after, a : or , delimiter (default: '')
:space_before-
a string that is put before a : pair delimiter (default: '')
:object_nl-
a string that is put at the end of a JSON object (default: '')
:array_nl-
a string that is put at the end of a JSON array (default: '')
:check_circular-
真を指定した場合、生成するオブジェクトの循環をチェックします。この動作がデフォルトです。
:allow_nan-
真を指定した場合、JSON::NaN, JSON::Infinity, JSON::MinusInfinity を生成することを許すようになります。偽を指定した場合、これらの値を生成しようとすると例外が発生します。デフォルトは偽です。
:max_nesting-
入れ子になっているデータの最大の深さを指定します。偽を指定すると深さのチェックを行いません。デフォルトは 100 です。
:ascii_only-
真を指定すると、ASCII 以外の文字を
\uXXXXの形式にエスケープします。デフォルトは偽です。 :script_safe-
真を指定すると、
/を\/に、U+2028・U+2029 を\u2028・\u2029にエスケープし、 JavaScript に埋め込んでも安全な JSON 形式の文字列を生成します。デフォルトは偽です。 :escape_slash-
:script_safeの別名です。 :strict-
真を指定すると、nil・true・false・Integer・Float・String・Array・Hash 以外のオブジェクトを
to_jsonやto_sで変換せず、JSON::GeneratorError を発生させます。 Symbol の値も JSON::GeneratorError になります(ハッシュのキーの Symbol は文字列に変換します)。デフォルトは偽です。
- [EXCEPTION]
JSON::GeneratorError: - JSON::NaN, JSON::Infinity,JSON::MinusInfinity を生成しようとした場合に発生します。
- [EXCEPTION]
JSON::CircularDatastructure: - 与えられたオブジェクトが循環参照を持つ場合に発生します。
require "json" p JSON.generate([1, 2, { name: "tanaka", age: 19 }]) # => "[1,2,{\"name\":\"tanaka\",\"age\":19}]" json_state = JSON::State.new(space: " ") p JSON.generate([1, 2, { name: "tanaka", age: 19 }], json_state) # => "[1,2,{\"name\": \"tanaka\",\"age\": 19}]"[SEE_ALSO] JSON::State, JSON.#pretty_generate
- [PARAM]