json(/ hash)到ruby对象?

在Javascript中,您可以将json作为对象访问。

person = { name: { first: "Peter", last: "Parker" } } person.name.first 

在ruby中我必须像这样使用它:

 person[:name][:first] 

是否可以像javascript一样访问json(和hash)作为对象?

你应该查看Hashie gem。 它可以让你做你想要的。 它有一个Mash类,它接受JSON和XML解析的哈希,并为您提供类似对象的访问。 它实际上深入挖掘哈希,转换哈希中的任何数组或哈希等。

http://github.com/intridea/hashie

ruby中有一个jsongem。 也许这会有所帮助。

http://flori.github.com/json/

JavaScript使用对象属性作为关联数组的实现。 因此,使用Ruby的哈希类型基本上做同样的事情。

Rails内置支持将哈希编码为JSON并通过ActiveSupport :: JSON将JSON解码为哈希。 使用内置支持避免了安装gem的需要。

 For example: hash = ActiveSupport::JSON.decode("{ \"color\" : \"green\" }") => {"color"=>"green"} hash["color"] => "green" 

有关详细信息,请参阅: http : //www.simonecarletti.com/blog/2010/04/inside-ruby-on-rails-serializing-ruby-objects-with-json/