如何将ruby哈希对象转换为JSON?

如何将ruby哈希对象转换为JSON?因此,我尝试下面这个例子&它不起作用了

我正在查看RubyDoc,显然Hash对象没有to_json方法。但我在博客上看到Rails支持active\u record.to\u json,也支持hash\to\u json。我可以理解ActiveRecord是一个Rails对象,但是Hash不是Rails的原生对象,它是一个纯Ruby对象。所以在Rails中你可以做一个hash.to_json,但在纯Ruby中不行

car={:make=>“bmw”,“year=>“2003”}
car.to_json

Ruby的众多优点之一是可以用自己的方法扩展现有的类。这被称为“类重新打开”或猴子补丁(后者的含义可能有所不同)

那么,看看这里:

car={:make=>“bmw”,“year=>“2003”}
#=>{:make=>“bmw”,“year=>“2003”}
car.to_json
#NoMethodError:未定义的{:make=>“bmw”,“year=>“2003”}:Hash的方法“to_json”
#来自(irb):11
#from/usr/bin/irb:12:in`<主>'
需要“json”
#=>符合事实的
car.to_json
#=>{“制造”:“宝马”,“年份”:“2003”}

如您所见,要求json神奇地将方法引入了我们的散列

发表评论