jq template 用法
时间: 2023-08-07 15:01:59 浏览: 59
jq 是一个命令行下的 JSON 处理工具,它可以方便地对 JSON 进行查询、筛选、格式化等操作。jq 提供了丰富的模板语法,可以让我们在处理 JSON 时更加灵活和高效。
jq 的模板语法使用双引号括起来的字符串,其中可以包含一些特殊字符和表达式。下面是一些常用的 jq 模板语法:
1. 字符串插值
使用 $() 语法可以在字符串中插入变量和表达式的值。例如:
```
$ jq -n --arg name "world" '$("Hello, \($name)!")'
"Hello, world!"
```
2. 对象取值
使用 . 和 [] 可以从 JSON 对象中取得指定的属性值。例如:
```
$ echo '{"name": "Alice", "age": 30}' | jq '.name'
"Alice"
$ echo '{"name": "Alice", "age": 30}' | jq '.["age"]'
30
```
3. 数组迭代
使用 .[] 可以把数组中的每个元素分别处理。例如:
```
$ echo '[1, 2, 3]' | jq '.[] * 2'
2
4
6
```
4. 条件判断
使用 if-then-else 来进行条件判断。例如:
```
$ echo '{"name": "Alice", "age": 30}' | jq 'if .age > 18 then "adult" else "child" end'
"adult"
```
除了以上的语法,jq 还提供了许多高级的模板语法,如函数定义、管道操作等。如果你想深入了解 jq 的模板语法,请参考 jq 的官方文档。