module ActiveSupport::JSON

def self.encode(value, options = nil)

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

See http://www.json.org for more info.
Dumps objects in JSON (JavaScript Object Notation).
def self.encode(value, options = nil)
  Encoding.json_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 http://www.json.org for more info.
Parses a JSON string (JavaScript Object Notation) into a hash.
def decode(json, options = {})
  if options.present?
    raise ArgumentError, "In Rails 4.1, ActiveSupport::JSON.decode no longer " \
      "accepts an options hash for MultiJSON. MultiJSON reached its end of life " \
      "and has been removed."
  end
  data = ::JSON.parse(json, quirks_mode: true)
  if ActiveSupport.parse_json_times
    convert_dates_from(data)
  else
    data
  end
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
  ::JSON::ParserError
end