module ActiveSupport::JSON

def self.encode(value, options = nil)

# => "{\"team\":\"rails\",\"players\":\"36\"}"
ActiveSupport::JSON.encode({ team: 'rails', players: '36' })

See www.json.org for more info.
Dumps objects in JSON (JavaScript Object Notation).
def self.encode(value, options = nil)
  Encoding::Encoder.new(options).encode(value)
end

def convert_dates_from(data)

def convert_dates_from(data)
  case data
  when nil
    nil
  when DATE_REGEX
    begin
      DateTime.parse(data)
    rescue ArgumentError
      data
    end
  when Array
    data.map! { |d| convert_dates_from(d) }
  when Hash
    data.each do |key, value|
      data[key] = convert_dates_from(value)
    end
  else
    data
  end
end

def decode(json, options ={})

=> {"team" => "rails", "players" => "36"}
ActiveSupport::JSON.decode("{\"team\":\"rails\",\"players\":\"36\"}")

See www.json.org for more info.
Parses a JSON string (JavaScript Object Notation) into a hash.
def decode(json, options ={})
  data = MultiJson.load(json, options)
  if ActiveSupport.parse_json_times
    convert_dates_from(data)
  else
    data
  end
end

def engine

def engine
  MultiJson.adapter
end

def engine=(name)

def engine=(name)
  MultiJson.use(name)
end

def parse_error

end
Rails.logger.warn("Attempted to decode invalid JSON: #{some_string}")
rescue ActiveSupport::JSON.parse_error
obj = ActiveSupport::JSON.decode(some_string)
begin

in the future.
depend on the ActiveSupport's JSON implementation, in case it changes
error in decoding JSON. Using this method means you won't directly
Returns the class of the error that will be raised when there is an
def parse_error
  MultiJson::DecodeError
end

def with_backend(name)

def with_backend(name)
  old_backend, self.backend = backend, name
  yield
ensure
  self.backend = old_backend
end