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

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


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.

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