作者contagious (漂移胖)
看板Ruby
标题Re: [问题] 关於 rails 的 from_json / to_json
时间Wed Oct 1 02:46:47 2008
其实问题没有这麽复杂
ActiveSupport::JSON.decode 的动作很直接
会把原文中的 foo_json 解成一个 Array of Hash
gotfat 兄所提到的 attributes= 是为了要一次设定很多个 attr 才需要的
这个例子中只有一个 @value 的话,就直接把 hash 中的值取出来就好了
ActiveSupport::JSON.decode(foo_json).inject([]){ |result, foo_attrs|
result << Foo.new(foo_attrs['value'])
}
如果要用 attributes= 来设定很多的 attr,那要改写一下:
class Foo
attr_accessor :value1, :value2
def initialize(hash)
self.attributes = hash
end
def attributes=(hash)
hash.each do |k,v|
instance_variable_set("@#{k}".to_sym, v)
end
end
end
foo_arr = []
foo_arr << Foo.new(:value1 => 1, :value2 =>2)
foo_arr << Foo.new('value1' => 10.5, :value2 => 'string')
foo_json = foo_arr.to_json
ActiveSupport::JSON.decode(foo_json).inject([]){ |result, foo_attrs|
result << Foo.new(foo_attrs)
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.70.236
1F:推 suomax:太棒了!感谢!:D 10/05 17:43