终端(Terminal)中美化JSON的几种方法
在使用terminal
期间经常会遇到json
数据的展示输出。以下是提供几种方法在终端中打印出漂亮的json
数据。
Python方式
[~] echo '{"foo": "lorem", "bar": "ipsum"}' | python -m json.tool
{
"bar": "ipsum",
"foo": "lorem"
}
curl
远程数据.
[~] curl https://dummyjson.com/products/1 | python -m json.tool
{
"brand": "Apple",
"category": "smartphones",
"description": "An apple mobile which is nothing like apple",
"discountPercentage": 12.96,
"id": 1,
"images": [
"https://i.dummyjson.com/data/products/1/1.jpg",
"https://i.dummyjson.com/data/products/1/2.jpg",
"https://i.dummyjson.com/data/products/1/3.jpg",
"https://i.dummyjson.com/data/products/1/4.jpg",
"https://i.dummyjson.com/data/products/1/thumbnail.jpg"
],
"price": 549,
"rating": 4.69,
"stock": 94,
"thumbnail": "https://i.dummyjson.com/data/products/1/thumbnail.jpg",
"title": "iPhone 9"
}
还可以为python -m json.tool
创建一个别名来方便操作.
[~] alias fjson='python -m json.tool'
[~] echo '{"foo": "lorem", "bar": "ipsum"}' | fjson
JQ库方式
jq
是一个开源命令行JSON
处理器,你可以从这里找到它,查看它的文档阅读使用方法。
要使用jq
,需要先安装它。您可以使用apt
命令将其安装在Ubuntu
上:
[~] sudo apt install jq
在Mac
中你可以使用brew
来安装它:
[~] brew install jq
美化
[~] curl https://dummyjson.com/products/1 | jq
{
"id": 1,
"title": "iPhone 9",
"description": "An apple mobile which is nothing like apple",
"price": 549,
"discountPercentage": 12.96,
"rating": 4.69,
"stock": 94,
"brand": "Apple",
"category": "smartphones",
"thumbnail": "https://i.dummyjson.com/data/products/1/thumbnail.jpg",
"images": [
"https://i.dummyjson.com/data/products/1/1.jpg",
"https://i.dummyjson.com/data/products/1/2.jpg",
"https://i.dummyjson.com/data/products/1/3.jpg",
"https://i.dummyjson.com/data/products/1/4.jpg",
"https://i.dummyjson.com/data/products/1/thumbnail.jpg"
]
}
最小化文件
jq
不紧可以美化json
,还可以压缩json
文件。要压缩JSON
文件,可以使用压缩选项-c。
[~] jq -c < pretty.json
Node和PHP
如果你的机器上面安装了node
, 你还可以使用JSON.stringify
来美化。
// 以4个空格格式化
JSON.stringify({"foo":"lorem","bar":"ipsum"}, null, 4);
// 以制表符格式化
JSON.stringify({"foo":"lorem","bar":"ipsum"}, null, '\t');
[~] node -e "console.log(JSON.stringify(JSON.parse(process.argv[1]), null, '\t'));" \ '{"foo":"lorem","bar":"ipsum"}'
{
"foo": "lorem",
"bar": "ipsum"
}
还可以使用php
来美化。
[~] php -r 'echo json_encode(json_decode($argv[1]), JSON_PRETTY_PRINT);' \ '{"aaa":"cc"}'
{
"aaa": "cc"
}
如果你还有更多的美化方式,你可以发邮件告诉我。我的邮箱是mfkgdyve456#126.com,发送时请将#
换成@
。