在Ruby中扩展String库时出错

时间:2017-08-17 10:13:23

标签: ruby

我想解析JSON字符串并将它们转换为哈希值。

我创建了一个名为to_h的方法并将其放在String类中,并且它有效。这就是我打算如何使用它Net::HTTP.get_response(uri).body.to_h 这是方法:

class String
   def to_h
     JSON.parse(self)
   end
end 

但当我将其名称更改为to_hash时,我在同一个字符串Net::HTTP.get_response(uri).body上收到以下错误。

A JSON text must at least contain two octets! (JSON::ParserError)

我不明白为什么会这样做。谁能帮我这个。 谢谢:))

1 个答案:

答案 0 :(得分:0)

使用Net :: HTTP.get_response(uri).to_h

调用您的方法

我怀疑get_response()返回的对象不是String,而是已经有to_hash方法的对象。 您的to_hash版本可能未被使用,因为您在非String对象上调用它。