概述
jq 接收 JSON 数据作为输入,并以各种方式对其进行处理和输出。它可以实现从简单的值提取到复杂的数组/对象操作,是在脚本环境中处理 JSON 的必备工具。
主要功能
- JSON 数据解析和格式化
- 提取和过滤特定字段
- 数组和对象操作
- 数据转换和重组
主要选项
输入/输出格式
过滤/转换
生成的命令:
请尝试组合命令。
描述:
`jq` 执行命令。
通过组合这些选项,您可以与 AI 一起虚拟地执行命令。
使用示例
基本 JSON 格式化
echo '{"name": "Alice", "age": 30}' | jq .
以易于阅读的格式输出输入的 JSON。
提取特定字段
echo '{"name": "Bob", "age": 25}' | jq '.name'
从 JSON 对象中提取“name”字段的值。
从数组元素中提取字段
echo '[{"name": "Alice"}, {"name": "Bob"}]' | jq '.[].name'
从 JSON 数组中的每个对象中提取“name”字段。
原始字符串输出
echo '{"city": "Seoul"}' | jq -r '.city'
不带引号地输出提取的字符串值。
选择多个字段并创建新对象
echo '{"name": "Charlie", "age": 40, "email": "charlie@example.com"}' | jq '{name: .name, age: .age}'
从现有对象中创建只包含“name”和“age”字段的新对象。
按条件过滤
echo '[{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}]' | jq '.[] | select(.age >= 30)'
仅过滤年龄大于或等于 30 的用户。
转换数组元素 (map)
echo '[{"name": "Alice"}, {"name": "Bob"}]' | jq 'map(.name | ascii_upcase)'
将每个用户的名称转换为大写。