(この記事は 地平線に行く とのマルチポストです)
JSON をフォーマットしたいけど、jq が入っていない!ということがよくあります。
そういう時は、Ruby や PHP を使いましょう!
Ruby の場合
ruby -rjson -e 'puts JSON.pretty_generate(JSON.parse(STDIN.read))'
↓ こんな風に表示されます!
[qiita@example ~]$ echo '{"key": {"format": ["json", "XML"]}}' \
| ruby -rjson -e 'puts JSON.pretty_generate(JSON.parse(STDIN.read))'
{
"key": {
"format": [
"json",
"XML"
]
}
}
また、JSON.parse(STDIN.read)["key"]
とすることで、特定の項目だけ表示することもできます。
[qiita@example ~]$ echo '{"key": {"format": ["json", "XML"]}}' \
| ruby -rjson -e 'puts JSON.pretty_generate(JSON.parse(STDIN.read)["key"])'
{
"format": [
"json",
"XML"
]
}
PHP の場合
php -r 'echo json_encode(json_decode(stream_get_contents(STDIN)), JSON_PRETTY_PRINT);'
↓ こんな風に表示されます!
[qiita@example ~]$ echo '{"key": {"format": ["json", "XML"]}}' \
| php -r 'echo json_encode(json_decode(stream_get_contents(STDIN)), JSON_PRETTY_PRINT);'
{
"key": {
"format": [
"json",
"XML"
]
}
}
また、json_decode(stream_get_contents(STDIN))->key
とすることで、特定の項目だけ表示することもできます。
[qiita@example ~]$ echo '{"key": {"format": ["json", "XML"]}}' \
| php -r 'echo json_encode(json_decode(stream_get_contents(STDIN))->key, JSON_PRETTY_PRINT);'
{
"format": [
"json",
"XML"
]
}