在Javascript中,您可以将json作为对象访问。
person = {
name: {
first: "Peter",
last: "Parker"
}
}
person.name.first
在红宝石中,我必须像这样使用它:
person[:name][:first]
是否可以像javascript一样访问json(和hash)作为对象?
答案 0 :(得分:4)
你应该查看Hashie gem。它可以让你做你想要的。它有一个Mash类,它接受JSON和XML解析的哈希,并为您提供类似对象的访问。它实际上深入挖掘哈希,转换哈希中的任何数组或哈希等。
答案 1 :(得分:1)
红宝石中有一个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/