instance method
from_json
Ruby on Rails 4.0.13
Since v3.0.20Signature
from_json(json, include_root=include_root_in_json)
Sets the model attributes from a JSON string. Returns self.
class Person include ActiveModel::Serializers::JSON attr_accessor :name, :age, :awesome def attributes=(hash) hash.each do |key, value| instance_variable_set("@#{key}", value) end end def attributes instance_values end end json = { name: 'bob', age: 22, awesome:true }.to_json person = Person.new person.from_json(json) # => #<Person:0x007fec5e7a0088 @age=22, @awesome=true, @name="bob"> person.name # => "bob" person.age # => 22 person.awesome # => true
The default value for include_root is false. You can change it to true if the given JSON string includes a single root node.
json = { person: { name: 'bob', age: 22, awesome:true } }.to_json person = Person.new person.from_json(json) # => #<Person:0x007fec5e7a0088 @age=22, @awesome=true, @name="bob"> person.name # => "bob" person.age # => 22 person.awesome # => true
Parameters
-
jsonreq -
include_rootopt = include_root_in_json
Source
# File activemodel/lib/active_model/serializers/json.rb, line 137
def from_json(json, include_root=include_root_in_json)
hash = ActiveSupport::JSON.decode(json)
hash = hash.values.first if include_root
self.attributes = hash
self
end
Defined in activemodel/lib/active_model/serializers/json.rb line 137
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveModel::Serializers::JSON