Module: ActiveSupport::JSON

Defined in:
lib/active_support/json/decoding.rb,
lib/active_support/json/encoding.rb,
lib/active_support/json/variable.rb,
lib/active_support/json/encoders/string.rb

Defined Under Namespace

Modules: Encoding Classes: CircularReferenceError, ParseError, Variable

Class Method Summary collapse

Class Method Details

.decode(json) ⇒ Object

Converts a JSON string into a Ruby object.



11
12
13
14
15
# File 'lib/active_support/json/decoding.rb', line 11

def decode(json)
  YAML.load(convert_json_to_yaml(json))
rescue ArgumentError => e
  raise ParseError, "Invalid JSON string"
end

.encode(value, options = {}) ⇒ Object

Converts a Ruby object into a JSON string.



7
8
9
10
11
12
13
14
# File 'lib/active_support/json/encoding.rb', line 7

def self.encode(value, options = {})
  seen = (options[:seen] ||= [])
  raise CircularReferenceError, 'object references itself' if seen.include?(value)
  seen << value
  value.send(:to_json, options)
ensure
  seen.pop
end