JSONを直接見るようなとき、いつもは単に目で追うだけだったり、あるいはブラウザの拡張機能とかで誤魔化していたのですが、最近はVimに貼り付けてから、整形・加工・検索しています。
pythonで整形する
こちらの記事が参考になります
自分がVimでJSONを整形したいと思ったのも、この投稿がきっかけです。
ただ、自分が普段開発している環境にはjqを入れてあるので、それを使うようにした方が何かと便利かなと思い、自分はjqを使うようにしています。
jqで整形する
jqという、コマンドラインで使えるJSONパーサーがあります。
Vimからjqを使うのに、次のようなコマンドをvimrcに定義しました。
Vim Script
command!-nargs=? Jq calls:Jq(<f-args>)function!s:Jq(...)if0==a:0letl:arg="."elseletl:arg=a:1endif
execute "%! jq \"" . l:arg . "\""endfunction
バッファ内の文字列全体に対してjqを実行し、変換後の文字列で置き換えます。
例えば、次のようなJSONがあったとして、
{"obj":{"list":[1,1,2,3,5,8,13]},"jstr":"\u3053\u3093\u306B\u3061\u306F\u4E16\u754C","str":"helloworld","num":1}
「:Jq」と実行
{"num":1,"str":"helloworld","jstr":"こんにちは世界","obj":{"list":[1,1,2,3,5,8,13]}}
「:Jq .obj.list」と実行
[1,1,2,3,5,8,13]
なんて風になります。
ばっちりUnicodeエスケープシーケンスの変換が行われて日本語が表示されていますし、色々加工も出来ちゃいます。
欠点はもちろんjqに依存してしまうことですが、普段から良くJSONに触れている方ならjqは入れておいて損はないと思いますよ!
jqのフィルタ機能については、以下のブログがとても参考になります!
vim-jsonを入れる
JSONを表示するのに、filetypeをjavascriptにしてもいいのですが、どうせならJSON用のfiletypeプラグインを入れてしまうのをオススメします。
↑のgithubのページにスクリーンショットがありますが、filetypeをjavascriptにしたときよりも色分けされるようになりますし、文字列を囲う「"」も省略されて表示されるので、とても見易いです