在Javascript中,您可以访问json作为对象。Json(/哈希)以ruby对象?
person = {
name: {
first: "Peter",
last: "Parker"
}
}
person.name.first
在红宝石我不得不使用它是这样的:
person[:name][:first]
是否有可能访问JSON(和哈希)作为对象,就像在JavaScript?
在Javascript中,您可以访问json作为对象。Json(/哈希)以ruby对象?
person = {
name: {
first: "Peter",
last: "Parker"
}
}
person.name.first
在红宝石我不得不使用它是这样的:
person[:name][:first]
是否有可能访问JSON(和哈希)作为对象,就像在JavaScript?
你应该看看HASHIE宝石。它可以让你做你正在寻找的东西。它有一个Mash类,它接受JSON和XML解析哈希,并为您提供类似于对象的访问。它实际上深潜入哈希,将所述哈希内的任何阵列或散列等
JavaScript使用对象属性作为其关联数组的实现。所以,使用Ruby的散列类型基本上是做同样的事情。
我如何像使用Javascript一样访问它? – 2010-08-29 07:56:25
红宝石里有一颗json宝石。也许这会有所帮助。
Rails已经内置支持通过的ActiveSupport散列编码为JSON和解码JSON到哈希:: JSON。使用内置支持可避免安装宝石。
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/
这不是他要求的。 – 2015-07-17 14:51:09
我仍然在学习Ruby,但要获得'person.name.first'在Ruby中工作,这些将需要的方法。当找不到属性时,您可能需要重写哈希中的'method_missing'以执行哈希查找。 – Anurag 2010-08-29 07:56:57
@anurag。我不知道是否有一种方法可以顺畅地在json和ruby对象之间进行转换。 – 2010-08-29 08:02:29
当然,根据我的理解,这种方法很容易写出来,而且很可能也会存在。主要想法是动态添加方法到给定的哈希实例。 – Anurag 2010-08-29 08:21:57