要約
既に JSON 形式になっている文字列を、変換せずにそのまま出力に埋め込むためのクラスです。
JSON?.generate や JSON::Coder#dump で変換するオブジェクトの中にこのクラスのインスタンスがあると、json の内容がそのまま挿入されます。生成済みの JSON 形式の文字列をキャッシュしておき、組み合わせて出力するような用途に使います。
内容の検証やエスケープは行いません。ascii_only や script_safe などの生成オプションは内容には適用されず、JSON?.pretty_generate でもインデントされません。strict が真のときも使用できます。JSON::State#as_json= に設定した Proc や JSON::Coder.new のブロックの返り値としても使用できます。
require "json"
cached = JSON::Fragment.new('{"a":1}')
p cached.json # => "{\"a\":1}"
p cached.to_json # => "{\"a\":1}"
p JSON.generate({"x" => cached, "y" => 2}) # => "{\"x\":{\"a\":1},\"y\":2}"
p JSON.generate([cached], strict: true) # => "[{\"a\":1}]"
puts JSON.pretty_generate({"x" => cached, "y" => 2})
# => {
# "x": {"a":1},
# "y": 2
# }
例 内容は検証もエスケープもされない
require "json"
p JSON.generate([JSON::Fragment.new('"é"'), "é"], ascii_only: true) # => "[\"é\",\"\\u00e9\"]"
p JSON.generate([JSON::Fragment.new('"a/b"'), "a/b"], script_safe: true) # => "[\"a/b\",\"a\\/b\"]"
p JSON.generate([JSON::Fragment.new("not json")]) # => "[not json]"
目次
継承しているメソッド
- Structから継承している特異メソッド
- Structから継承しているメソッド
- Enumerableから継承しているメソッド
-
- all?
- any?
- chain
- chunk
- chunk_while
- collect
- collect_concat
- compact
- count
- cycle
- detect
- drop
- drop_while
- each_cons
- each_entry
- each_slice
- each_with_index
- each_with_object
- entries
- filter_map
- find
- find_all
- find_index
- first
- flat_map
- grep
- grep_v
- group_by
- include?
- inject
- lazy
- map
- max
- max_by
- member?
- min
- min_by
- minmax
- minmax_by
- none?
- one?
- partition
- reduce
- reject
- reverse_each
- slice_after
- slice_before
- slice_when
- sort
- sort_by
- sum
- take
- take_while
- tally
- to_set
- uniq
- zip
特異メソッド
new(json) -> JSON::FragmentRuby 4.0 から[permalink][rdoc][edit]-
自身を初期化します。
- [PARAM]
json: - 埋め込む JSON 形式の文字列を指定します。内容は検証されません。
- [EXCEPTION]
TypeError: -
jsonが文字列でない場合に発生します。
- [PARAM]
インスタンスメソッド
json -> StringRuby 4.0 から[permalink][rdoc][edit]-
埋め込む JSON 形式の文字列を返します。
json=(string)Ruby 4.0 から[permalink][rdoc][edit]-
埋め込む JSON 形式の文字列を設定します。
- [PARAM]
string: - 埋め込む JSON 形式の文字列を指定します。
- [PARAM]
to_json(state = nil, *args) -> StringRuby 4.0 から[permalink][rdoc][edit]-
jsonの内容をそのまま返します。JSON?.generate などから呼び出されます。
- [PARAM]
state: - JSON::State を指定しますが使用しません。
- [PARAM]
args: - 無視されます。
- [PARAM]