convert json string to hash and retrieve hash items values in ruby

23 views
Skip to first unread message

prabhu

unread,
May 8, 2014, 12:17:35 PM5/8/14
to rubyonra...@googlegroups.com
 

 I have a string object which is basically in a json format and while trying to print it shows in console as
  

    item =
     {
            "id": "4c9f83e4-f479-48d0-9f92-3fff70a8f6ba",
             "item": "{"business":"1114","class":"Demo","date":"01-01-2014","version":"","data":"dummy","name":"Finance"}"
       
        }

I need to get the values of business, class, date etc and pass it as params to my method. So I tried to convert it into hashes as below

    hash_item = JSON.parse (item)

and output in console shows as

    The converted hash item is
    {"guid"=>"4c9f83e4-f479-48d0-9f92-3fff70a8f6ba", "item"=>"{"business":"1114","class":"Demo","date":"01-01-2014","version":"","data":"Dummy","name":"Finance"}"}

But when I try to access the hash value for business as
`hash_item['item']['business']` it shows

> "business"

 since the value of item is a String in the hash_item. I am not sure whether my approach is correct or not. So is there any better idea or any inputs to retrieve the hash values . Please help.

Matt Jones

unread,
May 9, 2014, 10:15:06 AM5/9/14
to rubyonra...@googlegroups.com
Something has HTML-escaped the JSON in "item"'s value. You can use CGI::unescapeHTML to followed by JSON.parse to unwrap it, but I'd recommend figuring out what is *producing* this weird formatting and fixing that instead...

--Matt Jones

Reply all
Reply to author
Forward
0 new messages