您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Linux 终端上如何打印JSON文件
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于Web应用和API交互。在Linux终端中,我们经常需要查看或处理JSON文件。本文将详细介绍多种在终端中打印JSON文件的方法,包括基础命令、格式化工具以及高级处理技巧。
## 1. 使用基础命令打印JSON
### 1.1 `cat` 命令
最简单的打印文件内容方式是使用`cat`命令:
```bash
cat file.json
但原始JSON可能没有缩进或换行,导致可读性差:
{"name":"John","age":30,"city":"New York"}
less
或 more
命令对于大文件,建议使用分页查看器:
less file.json
# 或
more file.json
按q
退出,空格键翻页。
jq
工具(推荐)jq
是专门处理JSON的命令行工具,默认会格式化输出:
jq '.' file.json
输出效果:
{
"name": "John",
"age": 30,
"city": "New York"
}
# Debian/Ubuntu
sudo apt install jq
# RHEL/CentOS
sudo yum install jq
# Arch Linux
sudo pacman -S jq
python
的json.tool模块Python自带JSON格式化工具:
python3 -m json.tool file.json
json_pp
(Perl工具)部分系统预装了这个Perl工具:
json_pp < file.json
提取特定字段:
jq '.name' file.json
# 输出:"John"
多字段选择:
jq '{name, age}' file.json
对于嵌套结构:
{
"user": {
"name": "Alice",
"contacts": {
"email": "alice@example.com"
}
}
}
访问嵌套字段:
jq '.user.contacts.email' file.json
[
{"id": 1, "name": "Item A"},
{"id": 2, "name": "Item B"}
]
遍历数组:
jq '.[].name' file.json
jq
彩色输出jq
默认启用彩色,若需强制启用:
jq -C '.' file.json | less -R
bat
工具bat
是cat
的增强版,支持语法高亮:
bat file.json
安装:
# Ubuntu
sudo apt install bat
# 别名设置(可选)
echo "alias cat='bat'" >> ~/.bashrc
使用jq
的流模式:
jq --stream '.' largefile.json
ijson
(Python库)适合内存受限环境:
python3 -c "import ijson; f=open('large.json'); [print(item) for item in ijson.items(f, 'item.path')]"
jq -c '.' file.json
jq -r '.users[] | [.name, .age] | @csv' file.json
jq --indent 4 '.' file.json
curl -s https://api.example.com/data | jq .
jq empty file.json || echo "Invalid JSON"
jq 'path(..)|[.[]|tostring]|join(".")' file.json
fx
- 交互式JSON查看器安装:
npm install -g fx
使用:
fx file.json
jless
- 专用JSON查看器类似less
的浏览体验:
cargo install jless
jless file.json
使用jq
的--raw-input
模式:
grep -v '^#' broken.json | jq -R .
sed '1s/^\xEF\xBB\xBF//' file.json | jq .
使用--seq
处理换行分隔的JSON:
jq --seq '.' ndjson_file
在Linux终端处理JSON文件时:
cat
或less
jq
fx
bat
增强显示掌握这些工具组合,可以高效地在命令行环境中处理各种JSON数据任务。
提示:将常用jq命令设为别名,如
alias prettyjson="jq '.'"
可提高效率。 “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。