jq tag切换
时间: 2023-07-20 16:06:10 浏览: 89
在 jq 中,可以使用 `select` 和 `select()` 函数来进行 tag 的切换。
例如,假设有以下 JSON 数据:
```json
{
"name": "John Smith",
"age": 30,
"address": {
"street": "123 Main Street",
"city": "Anytown",
"state": "CA",
"zip": "12345"
}
}
```
如果想要获取 `address` 对象中的 `zip` 属性,可以使用以下命令:
```bash
$ jq '.address | .zip' file.json
```
其中,`|` 表示管道操作符,`.` 表示当前对象。这个命令的意思是:先选择 `address` 对象,然后选择其中的 `zip` 属性。
如果想要在获取 `zip` 属性时,同时获取 `city` 属性,可以使用以下命令:
```bash
$ jq '.address | {city: .city, zip: .zip}' file.json
```
其中,`{}` 表示创建一个新的对象,`:` 表示赋值操作符。这个命令的意思是:先选择 `address` 对象,然后创建一个新的对象,其中 `city` 属性的值为 `address` 对象中的 `city` 属性,`zip` 属性的值为 `address` 对象中的 `zip` 属性。
如果想要在获取 `zip` 属性时,同时获取 `city` 属性,并将它们分别命名为 `Zip` 和 `City`,可以使用以下命令:
```bash
$ jq '.address | {Zip: .zip, City: .city}' file.json
```
这个命令与上面的命令类似,只是给属性取了不同的名字。
希望这些例子能够帮助你理解在 jq 中如何进行 tag 的切换。
阅读全文