module JSON::TruffleRuby::Generator::GeneratorMethods::Hash
def json_shift(state)
def json_shift(state) state.object_nl.empty? or return '' state.indent * state.depth end
def json_transform(state)
def json_transform(state) depth = state.depth += 1 if empty? state.depth -= 1 return '{}' end delim = ",#{state.object_nl}" result = +"{#{state.object_nl}" first = true indent = !state.object_nl.empty? each { |key, value| result << delim unless first result << state.indent * depth if indent key_str = key.to_s if key_str.is_a?(String) key_json = key_str.to_json(state) else raise TypeError, "#{key.class}#to_s returns an instance of #{key_str.class}, expected a String" end result = +"#{result}#{key_json}#{state.space_before}:#{state.space}" if state.strict? && !(false == value || true == value || nil == value || String === value || Array === value || Hash === value || Integer === value || Float === value) raise GeneratorError, "#{value.class} not allowed in JSON" elsif value.respond_to?(:to_json) result << value.to_json(state) else result << %{"#{String(value)}"} end first = false } depth = state.depth -= 1 unless first result << state.object_nl result << state.indent * depth if indent end result << '}' result end
def to_json(state = nil, *)
produced JSON string output further.
_state_ is a JSON::State object, that can also be used to configure the
this Hash instance.
Returns a JSON string containing a JSON object, that is unparsed from
def to_json(state = nil, *) state = State.from_state(state) state.check_max_nesting json_transform(state) end