Namespace
Methods
B
D
E
P
W
Constants
DATE_REGEX = /^(?:\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})?))$/
 

matches YAML-formatted dates

Class Public methods
backend()
Alias for: engine
backend=(name)
Alias for: engine=
decode(json, options ={})

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"}
# File activesupport/lib/active_support/json/decoding.rb, line 16
def decode(json, options ={})
  data = MultiJson.load(json, options)
  if ActiveSupport.parse_json_times
    convert_dates_from(data)
  else
    data
  end
end
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\"}"
# File activesupport/lib/active_support/json/encoding.rb, line 33
def self.encode(value, options = nil)
  Encoding::Encoder.new(options).encode(value)
end
engine()
Also aliased as: backend
# File activesupport/lib/active_support/json/decoding.rb, line 25
def engine
  MultiJson.adapter
end
engine=(name)
Also aliased as: backend=
# File activesupport/lib/active_support/json/decoding.rb, line 30
def engine=(name)
  MultiJson.use(name)
end
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
# File activesupport/lib/active_support/json/decoding.rb, line 52
def parse_error
  MultiJson::DecodeError
end
with_backend(name)
# File activesupport/lib/active_support/json/decoding.rb, line 35
def with_backend(name)
  old_backend, self.backend = backend, name
  yield
ensure
  self.backend = old_backend
end