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
      Date.parse(data)
    rescue ArgumentError
      data
    end
  when DATETIME_REGEX
    begin
      Time.zone.parse(data)
    rescue ArgumentError
      data
    end
  when Array
    data.map! { |d| convert_dates_from(d) }
  when Hash
    data.transform_values! do |value|
      convert_dates_from(value)
    end
  else
    data
  end
end

def decode(json)

=> {"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)
  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