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])}

うまくいきません。このような2レベルのハッシュプリント

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

この2レベルハッシュをうまく印刷する方法

以下のような出力が必要です。

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

he die and he became famous.
4

2 に答える 2

0

出力形式に制約がない場合は、プリティ プリントライブラリを試すことができます。

require 'pp'

[ 'key','ps','sent' ].each do |key|
  PP.pp(data[key])
end
于 2012-06-14T13:02:12.277 に答える
0

配列とハッシュが埋め込まれています。私はそれにアプローチする1つの方法を示しています。始める必要があります。

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}}

幸運を!

于 2012-06-14T13:28:10.153 に答える