Ruby:根据字符串中的位置从字符串中获取值

时间:2018-02-23 17:10:10

标签: ruby-on-rails ruby

我有一个哈希

形式的巨大字符串
    {"id"=>213, "email"=>"123@test.com", "closed_at"=>nil, 
     "created_at"=>"2018-
      02-23T08:34:45-06:00", "updated_at"=>"2018-02-23T08:34:45-06:00", 
      "number"=>1149, 
      "note"=>nil, "token"=>"123456789", 
      "gateway"=>"paypal", 
      "product_id"=>"1231231231", 
      "test"=>false, "total_price"=>"9.99"}

我需要提取"product_id"之后的值,在此示例中为1231231231

我尝试使用eval()将此字符串转换为哈希值,但是当我尝试hash[:product_id]hash['product_id']

时,它不会让我获得值

有没有其他方法可以使用该字符串并在"product_id"的位置后找到一些内容。我的想法已经不多了

编辑:当我尝试将其转换为哈希时,它返回nil,字符串正从数据库中获取,我有一个列,假设是一个jasonb,并被存储为类型列中的哈希'变异'

编辑:不知道为什么我的问题被downvoted我问我怎么能从字符串中提取一些内容并且问题得到了解答。

1 个答案:

答案 0 :(得分:1)

JSON.parse应该返回一个可以使用的哈希

hash = JSON.parse string <- this is your hash string
product_id = hash["product_id"]