Methods
Constants
DATETIME_REGEX | = | /\A(?:\d{4}-\d{2}-\d{2}|\d{4}-\d{1,2}-\d{1,2}[T \t]+\d{1,2}:\d{2}:\d{2}(\.[0-9]*)?(([ \t]*)Z|[-+]\d{2}?(:\d{2})?)?)\z/ |
DATE_REGEX | = | /\A\d{4}-\d{2}-\d{2}\z/ |
matches YAML-formatted dates |
Class Public methods
decode(json)
Parses a JSON
string (JavaScript Object
Notation) into a hash. See www.json.org for more info.
ActiveSupport::JSON.decode("{\"team\":\"rails\",\"players\":\"36\"}")
=> {"team" => "rails", "players" => "36"}
📝 Source code
# File activesupport/lib/active_support/json/decoding.rb, line 22
def decode(json)
data = ::JSON.parse(json, quirks_mode: true)
if ActiveSupport.parse_json_times
convert_dates_from(data)
else
data
end
end
🔎 See on GitHub
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\"}"
📝 Source code
# File activesupport/lib/active_support/json/encoding.rb, line 21
def self.encode(value, options = nil)
Encoding.json_encoder.new(options).encode(value)
end
🔎 See on GitHub
parse_error()
Returns the class of the error that will be raised when there is an error in decoding JSON
. Using this method means you won't directly depend on the ActiveSupport's JSON
implementation, in case it changes in the future.
begin
obj = ActiveSupport::JSON.decode(some_string)
rescue ActiveSupport::JSON.parse_error
Rails.logger.warn("Attempted to decode invalid JSON: #{some_string}")
end
📝 Source code
# File activesupport/lib/active_support/json/decoding.rb, line 42
def parse_error
::JSON::ParserError
end
🔎 See on GitHub