Developer
Developer

Reputation: 661

Convert string to hash with ruby

I am saving one field as string in my model, so after that i tried via console

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

i am trying to convert this to json or hash, because i need to take the values from that, is there any way to do this?

Upvotes: 1

Views: 867

Answers (1)

Grych
Grych

Reputation: 2901

Looks like your string is a YAML. You can easy decode it with 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"}}

Upvotes: 5

Related Questions