From: Robert Dober Date: 2006-03-24T18:40:11+09:00 Subject: Re: How to Iterate over nested Hashes ? ------=_Part_5728_24702541.1143193194300 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Something like this might work ---------------------------------- 8< -------------------------- #!/usr/bin/env ruby testhash =3D { :outside =3D> 1, "recipeKey"=3D>{"title"=3D>"RailsBook", "category_id"=3D>"1", "description"=3D>"This is a book about Rails", "instructions"=3D>"Read It", "author" =3D> { :name =3D> "Robert", :email =3D> "" } }, :out_again =3D> true } def traverse( aHash, level =3D 0 ) aHash.each do |k, v| puts "%s%s:%s" % [ " " *level, k, v.kind_of?(Hash) ? traverse( v, level + 1) : v ] end # do "" end # def traverse( traverse testhash ---------------------------------- >8 -------------------------- hope that helps Robert On 3/24/06, Dinesh Dinesh wrote: > > Hi, > > I'm new to Ruby. I want to know how to iterate over a nested hash as > below. > > > *************************************************************************= **** > testhash =3D { > > "recipeKey"=3D>{"title"=3D>"RailsBook", "category_id"=3D>"1", > "description"=3D>"This is a book about Rails", "instructions"=3D>"Read It= "} > > } > testhash.each {|key, value| print key, " value is : ", value, "\n" } > > Here is the output i get.. > > =3D=3D> recipeKey value is : titleRailsBookdescriptionThis is a book abo= ut > Railscategory_id1instructionsRead It > > *************************************************************************= **** > > As per the input "testhash", the value itself is a hash rt with keys as > "title","category_id","description" and "instructions"? Now how to get > these values as a key/value pair ?? > > If we apply "eash" operator for "testhash", the values are getting > printed "continously string" as shown above???, is this the expected > behaviour? > > I tried to assign this value into a "new hash" variable and when i > applied "each" on this varibale, it said "each" varible undefined, the > reason may be that the value which i assinged is not a hash? so wanted > to know how to iterate the above nested hash ? Please help me out. > > Thank You.. > > -- > Posted via http://www.ruby-forum.com/. > > -- Deux choses sont infinies : l'univers et la b=EAtise humaine ; en ce qui concerne l'univers, je n'en ai pas acquis la certitude absolue. - Albert Einstein ------=_Part_5728_24702541.1143193194300--