json(/ hash)到ruby对象?

时间:2010-08-29 07:44:26

标签: javascript ruby

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

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

person.name.first

在红宝石中,我必须像这样使用它:

person[:name][:first]

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

4 个答案:

答案 0 :(得分:4)

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

http://github.com/intridea/hashie

答案 1 :(得分:1)

红宝石中有一个json宝石。也许这会有所帮助。

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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/