Module: JSON::TruffleRuby::Generator::GeneratorMethods::String
- Defined in:
- lib/json/truffle_ruby/generator.rb
Instance Method Summary collapse
-
#to_json(state = nil, *args) ⇒ Object
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????.
Instance Method Details
#to_json(state = nil, *args) ⇒ Object
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????.
742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 |
# File 'lib/json/truffle_ruby/generator.rb', line 742 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., self) end |