[Ruby][小ネタ] ワンライナーで JSON を YAML に変換する

2016.09.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

JSON を YAML に変換する

先日 AWS CloudFormation にアップデートがあり、 CloudFormation Template を YAML で書けるようになったようです。

【アップデート】AWS CloudFormationでYAML形式をサポートしました

こうなったらぜひとも全ての CloudFormation Template を YAML で書きたいところです。それには JSON を YAML に変換する作業が必要です。

上記の記事内では remarshal を使っていますが Ruby だと何のツールを追加することなく行えます。

変換する

以下のコマンドを実行するだけです。

$ ruby -ryaml -rjson -e 'puts YAML.dump(JSON.parse(STDIN.read))' < sample.json > sample.yaml

-ryaml-rjson で require して、読んだ JSON データを Hash に変換して YAML に dump しています。

例えば、こういう JSON ファイルが、

{
  "Date":"2016-09-20",
  "Name":"classmethod, Inc"
}

こういう YAML ファイルになります。

---
Date: '2016-09-20'
Name: classmethod, Inc

まとめ

Mac であれば Ruby は標準でインストールされているので、上記コマンドはすぐに試すことができます。