module ActiveSupport::JSON

Experimental RBS support (using type sampling data from the type_fusion project).

# sig/active_support/json/decoding.rbs

module ActiveSupport::JSON
  
  type ActiveSupport__JSON_encode_value = Array[Hash, sections, Array, RorVsWild::Section, RorVsWild::Section, RorVsWild::Section, RorVsWild::Section, RorVsWild::Section, RorVsWild::Section, RorVsWild::Section, RorVsWild::Section, RorVsWild::Section, RorVsWild::Section, RorVsWild::Section, RorVsWild::Section, section_stack, Array, , environment, Hash, os, String, user, String, host, String, ruby, String, rails, String, pid, Integer, cwd, String, revision, String, started_at, Integer, path, String, name, String, runtime, Integer, queued_at, Time] | Hash | Array[Array, String, String, String] | Array[]
  
  def self.encode: (ActiveSupport__JSON_encode_value value, ?nil options) -> String
  def decode: (String json) -> Hash
end

def self.encode(value, options = nil)

Experimental RBS support (using type sampling data from the type_fusion project).

type ActiveSupport__JSON_encode_value = Array[Hash, sections, Array, RorVsWild::Section, RorVsWild::Section, RorVsWild::Section, RorVsWild::Section, RorVsWild::Section, RorVsWild::Section, RorVsWild::Section, RorVsWild::Section, RorVsWild::Section, RorVsWild::Section, RorVsWild::Section, RorVsWild::Section, section_stack, Array, , environment, Hash, os, String, user, String, host, String, ruby, String, rails, String, pid, Integer, cwd, String, revision, String, started_at, Integer, path, String, name, String, runtime, Integer, queued_at, Time] | Hash | Array[Array, String, String, String] | Array[]
type ActiveSupport__JSON_encode_value = Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | Hash | sections | Array | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | RorVsWild::Section | section_stack | Array |  | environment | Hash | os | String | user | String | host | String | ruby | String | rails | String | pid | Integer | cwd | String | revision | String | started_at | Integer | path | String | name | String | runtime | Integer | queued_at | Time | sample | gem_name | String | gem_version | String | receiver | String | method_name | String | application_name | String | location | String | type_fusion_version | String | parameters |  | return_value | String | sample | gem_name | String | gem_version | String | receiver | String | method_name | String | application_name | String | location | String | type_fusion_version | String | parameters |  | return_value | Array |  |  | sample | gem_name | String | gem_version | String | receiver | String | method_name | String | application_name | String | location | String | type_fusion_version | String | parameters | Array | String | String | Array | String | Array | String | String | return_value | String | Array | String | String | String | Array | String | String | String | Array | String | String | String | sample | gem_name | String | gem_version | String | receiver | String | method_name | String | application_name | String | location | String | type_fusion_version | String | parameters | Array | String | String | String | return_value | String | sample | gem_name | String | gem_version | String | receiver | String | method_name | String | application_name | String | location | String | type_fusion_version | String | parameters |  | return_value | Array | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | Array | String | String | sample | gem_name | String | gem_version | String | receiver | String | method_name | String | application_name | String | location | String | type_fusion_version | String | parameters |  | return_value | Array | Array | String | Array | Array | String | Array | Array | String | Array | Array | String | Array | Array | String | Array |  | Array | String | Array | Array | String | Array |  | String | Array | String | Array | Array | String | Array | String | String | Array | String | Array | String | Array | String | Array | Array | String | Array | Array | String | Array |  | Array | String | Array |  | sample | gem_name | String | gem_version | String | receiver | NilClass | method_name | String | application_name | String | location | String | type_fusion_version | String | parameters |  | return_value | String | sample | gem_name | String | gem_version | String | receiver | String | method_name | String | application_name | String | location | String | type_fusion_version | String | parameters |  | return_value | Array | String | Array | String | Array |  | String | String | String | String | sample | gem_name | String | gem_version | String | receiver | String | method_name | String | application_name | String | location | String | type_fusion_version | String | parameters | Array | String | String | String | Array | String | String | String | return_value | Array | String

def self.encode: (ActiveSupport__JSON_encode_value value, ?nil options) -> String

This signature was generated using 38 samples from 2 applications.

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

Experimental RBS support (using type sampling data from the type_fusion project).

def decode: (String json) -> (_rails | message | String | exp | NilClass | pur | String | session_id | String | _csrf_token | String)

This signature was generated using 11 samples from 1 application.

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