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",



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


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.

My first post here

Nice answer.

My first post here, sorry about formating ( or lack there of ).

“item”: "{“business”:“111 … … ;}”

You get “business” because the value of item[‘item’] is a string. The
[] operator on a string returns the enclosed string if that substring
exists in the string:

my_string = “Hello World”
my_string[ “llo” ] => “llo”

So that is the first issue, that string needs to have a JSON.parse
called on it. However, it is also escaped. I’m not sure that the
JSON.parse with unescape it for you, but CGI will:

require ‘cgi’

string = ““business”:”
CGI.unescapeHTML( string ) => ““business”:”

So, you want something like:

parsed = JSON.parse( original )
parsed[‘item’] = JSON.parse( CGI.unescapeHTMl( parsed[‘item’] ) )

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs