使用ruby将字符串转换为哈希

时间:2015-02-03 14:27:31

标签: ruby-on-rails ruby json string hash

我在模型中将一个字段保存为字符串,所以之后我尝试通过控制台

1.9.3-p547 :250 > s1 = s.send_details

 => "---\nnew_order: order\nprogress: order  on d way\ndelivered:\n  
message: delivered\n  send_after: '1'\n"

1.9.3-p547 :255 > JSON.parse(s1)
JSON::ParserError: 757: unexpected token at '---

'

1.9.3-p547 :262 > s1.class
=> String

我正在尝试将其转换为json或hash,因为我需要从中获取值,有没有办法做到这一点?

1 个答案:

答案 0 :(得分:5)

看起来你的字符串是YAML。您可以使用YAML.load轻松解码它:

require 'yaml'
YAML.load("---\nnew_order: order\nprogress: order  on d way\ndelivered:\n  message: delivered\n  send_after: '1'\n")
=> {"new_order"=>"order", "progress"=>"order  on d way", "delivered"=>{"message"=>"delivered", "send_after"=>"1"}}