如何将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神奇地将方法引入了我们的散列