module JSON::Pure::Generator::GeneratorMethods::Array
Public Instance Methods
to_json(state = nil, *)
click to toggle source
Returns a JSON
string containing a JSON
array, that is unparsed from this Array
instance. state is a JSON::State object, that can also be used to configure the produced JSON
string output further.
# File lib/json/pure/generator.rb, line 461 def to_json(state = nil, *) state = State.from_state(state) state.check_max_nesting json_transform(state) end
Private Instance Methods
json_transform(state)
click to toggle source
# File lib/json/pure/generator.rb, line 469 def json_transform(state) result = '['.dup if state.array_nl.empty? delim = "," else result << state.array_nl delim = ",#{state.array_nl}" end depth = state.depth += 1 first = true indent = !state.array_nl.empty? each { |value| result << delim unless first result << state.indent * depth if indent 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 result << state.array_nl result << state.indent * depth if indent result << ']' end