2021/06/21(月) [n年前の日記]
#3 [prog][json] JSON関連のツールを導入
JSONデータを扱いやすくするためのツールをいくつか導入。環境は Windows10 x64 20H2。
◎ jqを試用。 :
jq は、JSONデータを分かりやすく整形してくれたりするツールらしい。
_jq
_Download jq
_jq コマンドを使う日常のご紹介 - Qiita
_Windowsでjqコマンドを導入してJSONレスポンスを整形・抽出する
_jqをWindowsマシンにインストールして使ってみる - Qiita
現行版は 1.6。jq-win64.exe をDLして、パスが通ったところに置いてみた。更に、jq.exe にリネームしておいた。
以前も導入したことがあったらしい…。jq 1.5 が既に入ってた…。
_jq
_Download jq
_jq コマンドを使う日常のご紹介 - Qiita
_Windowsでjqコマンドを導入してJSONレスポンスを整形・抽出する
_jqをWindowsマシンにインストールして使ってみる - Qiita
現行版は 1.6。jq-win64.exe をDLして、パスが通ったところに置いてみた。更に、jq.exe にリネームしておいた。
以前も導入したことがあったらしい…。jq 1.5 が既に入ってた…。
◎ YAMLと相互変換したい。 :
JSON は見辛いし編集しづらいので、YAML に変換できないものかなと思えてきた。
ググってみたら、json2yaml とか yaml2json 等があるらしい。Python で実装された版や、Ruby で実装された版、npm でインストールできる版が存在するようで。
_json2yaml - PyPI
_drbild/json2yaml: Convert JSON to YAML or vice versa, while preserving the order of associative arrays.
_python-json2yaml - PyPI
_【json2yaml】JSON を YAML に変換する | レコチョクのエンジニアブログ
_json2yaml | RubyGems.org | コミュニティのGemホスティングサービス
_fukayatsu/json2yaml: Convert between JSON and YAML in CLI
_json2yaml - npm
_npmモジュールでJSONをYAMLに変換、YAMLをJSONに変換する | 株式会社CONFRAGE ITソリューション事業部
Python版をインストールしてみた。Pythonのバージョンは、3.9.5。64bit版。
しかし、json2yaml input.json output.yaml と打ったら、「json2yaml ってコマンドじゃないよね?」と言われて動かなかった。もしかすると、「*NIX環境なら使えますよ」的ツールで、Windows上ではそのまま使えないのかもしれない。Python版はアンインストールした。
Ruby版を試してみる。Ruby のバージョンは、2.6.6 p146。
実行してみる。
そもそも、ワンライナーで変換できてしまうらしい…。
_ワンライナーでのJSON, YAMLの整形や変換とその相違 - Qiita
_YAML <-> JSON 変換 (Rubyで実装) - Qiita
_[Ruby][小ネタ] ワンライナーで JSON を YAML に変換する | DevelopersIO
ググってみたら、json2yaml とか yaml2json 等があるらしい。Python で実装された版や、Ruby で実装された版、npm でインストールできる版が存在するようで。
_json2yaml - PyPI
_drbild/json2yaml: Convert JSON to YAML or vice versa, while preserving the order of associative arrays.
_python-json2yaml - PyPI
_【json2yaml】JSON を YAML に変換する | レコチョクのエンジニアブログ
_json2yaml | RubyGems.org | コミュニティのGemホスティングサービス
_fukayatsu/json2yaml: Convert between JSON and YAML in CLI
_json2yaml - npm
_npmモジュールでJSONをYAMLに変換、YAMLをJSONに変換する | 株式会社CONFRAGE ITソリューション事業部
Python版をインストールしてみた。Pythonのバージョンは、3.9.5。64bit版。
pip install json2yaml
しかし、json2yaml input.json output.yaml と打ったら、「json2yaml ってコマンドじゃないよね?」と言われて動かなかった。もしかすると、「*NIX環境なら使えますよ」的ツールで、Windows上ではそのまま使えないのかもしれない。Python版はアンインストールした。
pip uninstall json2yaml
Ruby版を試してみる。Ruby のバージョンは、2.6.6 p146。
gem install json2yamlコンパイラが必要になるライブラリだったらしい…。 *1 MinGW/MSYS を有効化してインストール。0.0.3 がインストールされた。
実行してみる。
json2yaml input.json > output.yamlこちらは Windows上でも動いてくれたので、Ruby版を使わせてもらおうかなと…。
そもそも、ワンライナーで変換できてしまうらしい…。
_ワンライナーでのJSON, YAMLの整形や変換とその相違 - Qiita
_YAML <-> JSON 変換 (Rubyで実装) - Qiita
_[Ruby][小ネタ] ワンライナーで JSON を YAML に変換する | DevelopersIO
◎ 余談。 :
手打ちで作成した hoge.json を json2yaml hoge.json してみたらエラーが出て悩んだ。jq . hoge.json してもエラーが出る。何故。
最後のあたりに「,」を入れてしまっていたのが原因だった…。
以下が正しい。
今後は気を付けないと…。などとメモしたけど、たぶん3日後には忘れてまた同じミスをしてそう。
最後のあたりに「,」を入れてしまっていたのが原因だった…。
"Goal": { "path": "imgs/img10.png", ... }, }
以下が正しい。
"Goal": { "path": "imgs/img10.png", ... } }
今後は気を付けないと…。などとメモしたけど、たぶん3日後には忘れてまた同じミスをしてそう。
*1: 依存している yajl-ruby (YAJL C Bindings for Ruby) からしてコンパイラが必要っぽい。
[ ツッコむ ]
以上です。