JSONの整形をvim(jq)だけで手軽に済ませてみる

JSONをvim+jqで手軽に整形する方法について書いてみました。
2019.03.12

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

今日のWebサービス提供APIを触る上で、JSON形式のデータは避けて通れない代物です。人が読むに耐えられる程度の可視性を持ち合わせていますが、それでもある程度の整形が入っている前提にはなるでしょう。

個人的に改行等を手作業で挟んだりすることが多いのですが、案外vimを使っているのにナンセンスな事をしているのではないだろうかと思いたち、調べてみました。

JSONフォーマットの自動整形

今回はvim向けのプラグインは使わずに、jqで手軽に済ませてみます。

% brew install jq
% vim event.json
{"body": {"content": {"key_id": "","summary": ""},"project": {"projectKey": ""},"type": 1},"is_test": 1}
:%!jq '.'
{
  "body": {
    "content": {
      "key_id": "",
      "summary": ""
    },
    "project": {
      "projectKey": ""
    },
    "type": 1
  },
  "is_test": 1
}

ユーザコマンド化

ただ、入力を若干簡略化したい気持ちがあります。そこで.vimrcにてコマンド化しておきます。

% vim ~/.vimrc
command! Jqf %!jq '.'

まとめ

JSONフォーマットの整形には色々な手段が存在しています。Webサービスとして提供されているものも見かけますが、適当なダミーなら兎も角、慎重にデータを扱う場合には選択肢から外したいところです。

今回の手法はvimを使っている人にはよく知られているものの一つのようです。普段使っているやり方が手間だと感じている場合はおすすめです。