class method
self.encode
Ruby on Rails 8.1.2
Since v2.2.3Signature
self.encode(value, options = nil)
Dumps objects in JSON (JavaScript Object Notation). See www.json.org for more info.
ActiveSupport::JSON.encode({ team: 'rails', players: '36' }) # => "{\"team\":\"rails\",\"players\":\"36\"}"
By default, it generates JSON that is safe to include in JavaScript, as it escapes U+2028 (Line Separator) and U+2029 (Paragraph Separator):
ActiveSupport::JSON.encode({ key: "\u2028" }) # => "{\"key\":\"\\u2028\"}"
By default, it also generates JSON that is safe to include in HTML, as it escapes <, >, and &:
ActiveSupport::JSON.encode({ key: "<>&" }) # => "{\"key\":\"\\u003c\\u003e\\u0026\"}"
This behavior can be changed with the escape_html_entities option, or the global escape_html_entities_in_json configuration option.
ActiveSupport::JSON.encode({ key: "<>&" }, escape_html_entities: false) # => "{\"key\":\"<>&\"}"
For performance reasons, you can set the escape option to false, which will skip all escaping:
ActiveSupport::JSON.encode({ key: "\u2028<>&" }, escape: false) # => "{\"key\":\"\u2028<>&\"}"
Parameters
-
valuereq -
optionsopt = nil
Source
# File activesupport/lib/active_support/json/encoding.rb, line 47
def encode(value, options = nil)
if options.nil? || options.empty?
Encoding.encode_without_options(value)
elsif options == { escape: false }.freeze
Encoding.encode_without_escape(value)
else
Encoding.json_encoder.new(options).encode(value)
end
end
Defined in activesupport/lib/active_support/json/encoding.rb line 47
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveSupport::JSON