2012-06-14 2 views
0

я встречаю хэш, как этотКак напечатать хэш в два раза в рубине?

{"num"=>"219", "id"=>"219", "name"=>"219", "key"=>"", "ps"=>["ˈɑ:bitrəri", "ˈɑrbɪˌtrɛri"], "sent"=>[{"orig"=>"\nHe makes unpredictable, decisions.\n", "trans"=>"\his decision is very hard to understand \n"}, {"orig"=>"\nYou can make an choice.\n", "trans"=>"\n you can chose randomly。\n"}]} 

Я просто хочу напечатать часть этого хэша.

мое решение

key = ['key','ps','sent'] 
key.each{|key| key == 'sent' ? (p server_config["sent"].to_s) : (p server_config[key])} 

это не очень хорошо работает. два уровня хэш печати как этот

[{\"orig\"=>\"\\nAs soon as he kicked the bucket, he started to become famous.\\n\", \"trans\"=>\"\\nhe die and he became famous \\n\"}, ]" 

как печатать эту двухуровневую хэш-хорошо

Выход я хочу просто, как показано ниже.

As soon as he kicked the bucket, he started to become famous. 

he die and he became famous. 
+0

Что именно не работает? –

+0

двухуровневый хэш печатается так [{\ "orig \" => \ "\\ n Как только он пнул ведро, он стал прославиться. \\ n \", \ "trans \" => \ " \\ nhe die, и он стал знаменитым \\ n \ "},]" – user1396000

+0

Какой результат вы ожидаете? –

ответ

0

Если выходной формат не constrait вы можете попробовать pretty print библиотеку:

require 'pp' 

[ 'key','ps','sent' ].each do |key| 
    PP.pp(data[key]) 
end 
+0

привет, спасибо за вашу помощь. просто хочу перечислить этот хеш и напечатать его с помощью нескольких ключей (не со всеми ключами). Я понятия не имею об этом хэш-уровне уровня. – user1396000

0

У вас есть массив и хэш встроенные. Я показываю вам один из способов приблизиться к нему. Должен вас начать.

my_hash = {"num"=>"219", "id"=>"219", "name"=>"219", "key"=>"", "ps"=>["a:bitreri", "arbitreri"], "sent"=>[{"orig"=>"\nHe makes unpredictable, decisions.\n", "trans"=>"\his decision is very hard to understand \n"}, {"orig"=>"\nYou can make an choice.\n", "trans"=>"\n you can chose randomly.\n"}]} 

my_hash["sent"].each{|item| item.each {|key, val| puts val}} 

Удачи вам!

Смежные вопросы