Ruby

YAML を読みやすい JSON に変換する Ruby スクリプト


やりたいこと

次の YAML を JSON に変換したい。


girls.yml

- name: 中川夏紀

musical_instrument: ユーフォニアム
- name: 吉川優子
musical_instrument: トランペット
- name: 鎧塚みぞれ
musical_instrument: オーボエ
- name: 傘木希美
musical_instrument: フルート


方法


yaml_to_json.rb

require 'json'

require 'yaml'

filepath = ARGV[0]

yaml = File.read(filepath)
obj = YAML.safe_load(yaml, [], [], true)

puts(JSON.pretty_generate(obj))


$ ruby yaml_to_json.rb girls.yml



[
{
"name": "中川夏紀",
"musical_instrument": "ユーフォニアム"
},
{
"name": "吉川優子",
"musical_instrument": "トランペット"
},
{
"name": "鎧塚みぞれ",
"musical_instrument": "オーボエ"
},
{
"name": "傘木希美",
"musical_instrument": "フルート"
}
]

JSON モジュールに JSON.pretty_generate なんて素敵なメソッドがあるとは :heart_eyes:


参考