mieki256's diary



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 が既に入ってた…。

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版。
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 してもエラーが出る。何故。

最後のあたりに「,」を入れてしまっていたのが原因だった…。
    "Goal": {
        "path": "imgs/img10.png",
        ...
    },
}

以下が正しい。
    "Goal": {
        "path": "imgs/img10.png",
        ...
    }
}

今後は気を付けないと…。などとメモしたけど、たぶん3日後には忘れてまた同じミスをしてそう。

*1: 依存している yajl-ruby (YAJL C Bindings for Ruby) からしてコンパイラが必要っぽい。

以上です。

過去ログ表示

Prev - 2021/06 - Next
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project