rubyでJSONからTSVへ

以下のようなJSONファイルをTSV形式に変換します。

[{"name":"john","gender":"m","age":"18"},
 {"name":"paul","gender":"m","age":"20"},
 {"name":"alice","gender":"f","age":"15"},
 {"name":"dabid","gender":"m","age":"17"},
 {"name":"jasmin","gender":"f","age":"17"}]

input.json

require 'JSON'

name_list = File.open('input.json') do |json_file|
  JSON.load(json_file)
end

File.open('output.tsv', 'w') do |tsv_file|
  name_list.each do |person|
    tsv_file << person["name"] + "\t" + person["gender"] + "\t" + person["age"] + "\n"
  end
end

JSON.load()によってjsonファイルが配列として読み込まれます。
ブロック変数|person|はハッシュなので

tsv_file << person.values.join("\t") + "\n"

などとしても良さそうですが、jsonファイルは要素の順番がバラバラの場合があるため、キー指定で順番を整えてから書き込んでいます。

john	m	18
paul	m	20
alice	f	15
dabid	m	17
jasmin	f	17

output.tsv