module JSON::TruffleRuby::Generator::GeneratorMethods::String
Public Instance Methods
Source
# File vendor/bundle/ruby/3.4.0/gems/json-2.17.1/lib/json/truffle_ruby/generator.rb, line 697 def to_json(state = nil, *args) state = State.from_state(state) string = self if state.strict? && state.as_json unless Generator.valid_encoding?(string) string = state.as_json.call(string, false) unless string.is_a?(::String) return string.to_json(state, *args) end end end if string.encoding == ::Encoding::UTF_8 unless string.valid_encoding? raise GeneratorError.new("source sequence is illegal/malformed utf-8", self) end else string = string.encode(::Encoding::UTF_8) end if state.ascii_only? %("#{JSON::TruffleRuby::Generator.utf8_to_json_ascii(string, state.script_safe)}") else %("#{JSON::TruffleRuby::Generator.utf8_to_json(string, state.script_safe)}") end rescue Encoding::UndefinedConversionError => error raise ::JSON::GeneratorError.new(error.message, self) end
This string should be encoded with UTF-8 A call to this method returns a JSON string encoded with UTF16 big endian characters as u????.